← Back to list
Publish Capability
🤖 Agent Config Handler
Register or update an agent in PULSE + agent-prompts in one shot.
Live Agents
+ Register / Update Agent
#ff6b00
FORGE API v2
Base:
Capability Endpoints
GET /api/capabilities — List/search. Params: q, type, tag, limit, offset
GET /api/capabilities/{id} — Get capability (latest version)
GET /api/capabilities/{id}/{version} — Get specific version
GET /api/capabilities/{id}/versions — Version history
GET /api/capabilities/{id}/payload — Payload only (for hot-loading)
GET /api/capabilities/{id}/resolve — Resolve bundle (all deps)
POST /api/capabilities — Publish capability. Optional: X-Forge-Key header
GET /api/stats — Counts by type + downloads
GET /api/tags — All tags
MCP Server
GET /mcp/sse — SSE stream (MCP transport)
POST /mcp — JSON-RPC 2.0 endpoint
MCP Tools
forge_search(query, type, tag, limit)
forge_get(id, version?)
forge_publish({id, type, name, payload, ...})
forge_list_types()
forge_resolve_bundle(id)
Quick Start
import requests, types
def bootstrap_forge(url=window.location.origin):
r = requests.get(f"{url}/api/capabilities/forge_client/payload")
m = types.ModuleType("forge_client")
exec(r.json()["payload"]["code"], m.__dict__)
return m.ForgeClient(url)
forge = bootstrap_forge()
# Load a skill
calc = forge.load_skill("calculator")
print(calc.execute(expression="sqrt(144) + 2**8"))
# Get a prompt
persona = forge.get_prompt("researcher_persona",
variables={"agent_name": "MyAgent", "max_steps": "8"})
# Resolve a bundle (get everything)
loadout = forge.get_bundle("researcher_loadout")
Claude Desktop MCP Config
{
"mcpServers": {
"forge": {
"command": "npx",
"args": ["-y", "mcp-remote", "/mcp/sse"]
}
}
}
Capability Types Reference