AgentStack (agentstack.tech)
Backend for AI agents: one batched tool over ~668 actions (hosting, storage, auth, payments).
Sollte ich dies verwenden
Qualität und Sicherheit
Befunde (1)
- LOWin agentstack.execute
Basierend auf einer automatisierten Analyse der Tool-Definitionen und der Einhaltung des Protokolls.
Kontextkosten
Dies ist die ungefähre Anzahl der Tokens, die jedes Mal verbraucht werden, wenn die Tools des Servers in den Kontext eines Modells geladen werden. Höhere Werte verringern die Aufmerksamkeit, die für andere Aufgaben verfügbar ist.
Installieren
Installation mit einem Klick
Fügen Sie dies Ihrer Datei `claude_desktop_config.json` hinzu:
{
"mcpServers": {
"agentstack": {
"url": "https://agentstack.tech/mcp"
}
}
}Remote-Endpunkte
https://agentstack.tech/mcpstreamable-httpWas es kann
Tool-Inventar
Tools (1)
🔴agentstack.execute(steps, context, options)
AgentStack MCP = Work Graph control plane. After session + context.project_id: agents.work_next (mcp_work_loop_v1) -> plan_claim -> plan_execute (CAS/leases). Follow packet.next_action; catalog/discovery.search only if no packet. One-shot CRM/upload may call domain actions directly. Spine: agents.plan_get -> agents.work_next -> agents.plan_claim -> agents.plan_execute. Anti-pattern: Do not pick tools from catalog when packet.next_action is present. Mandatory session order: authenticate -> session probe auth.get_profile (alias auth.me) -> select/create project -> set context.project_id on every batch -> Work Graph loop. Playbook GET /mcp/prompts/get?name=agentstack_session_setup (recipe mcp_session_setup). Sync POST /mcp is lane mcp_batch (60000 ms) for the whole batch - not an RBAC cap. One expensive step per sync execute (bots.simulate, knowledge.playground, agents.run with wait=true, agents.plan_*, context.get); LLM-heavy steps widen to ai_stream (180000 ms). Large suites: options.async=true then poll discovery.job_status (REST GET /mcp/jobs/{{{{job_id}}}}). Cite catalog_actions_public from GET /mcp/actions/summary. There is one execute tool (agentstack.execute); do not quote tools_count as 'N tools'. Do not invent rules.* or webhooks.* (prefer logic.* and integrations.*).
Eingabe-Schema
{
"type": "object",
"properties": {
"steps": {
"type": "array",
"minItems": 1,
"description": "Ordered steps. Cheap list/get may batch. At most one heavy LLM action (bots.simulate, knowledge.playground, …) per sync execute.",
"items": {
"type": "object",
"description": "One action invocation inside the batch.",
"properties": {
"id": {
"type": "string",
"description": "Step id unique within this batch. Referenced by options.observed."
},
"action": {
"type": "string",
"description": "Canonical dotted action id from GET /mcp/actions (example: auth.get_profile)."
},
"params": {
"type": "object",
"description": "Action arguments. Shape comes from discovery.describe for that action.",
"additionalProperties": true
},
"if": {
"type": "object",
"description": "Optional predicate. The step runs only when this condition matches.",
"additionalProperties": true
}
},
"required": [
"id",
"action"
]
}
},
"context": {
"type": "object",
"description": "Execute scope. Set project_id on every batch after the session probe.",
"properties": {
"project_id": {
"type": "integer",
"description": "Tenant project id. Required for project-scoped actions."
},
"user_id": {
"type": "integer",
"description": "Caller user id. Usually taken from the session; do not invent it."
},
"generation_env_uuid": {
"type": "string",
"description": "Sandbox generation anchor (env_uuid). Not a recipe input."
}
},
"additionalProperties": true
},
"options": {
"type": "object",
"description": "Batch controls: async jobs, recipes, playbook progress, and error policy.",
"properties": {
"async": {
"type": "boolean",
"description": "Queue the batch (durable job). Required for more than one heavy LLM step. Poll discovery.job_status or GET /mcp/jobs/{job_id}."
},
"idempotency_key": {
"type": "string",
"description": "Client retry key. The same key returns the same receipt."
},
"workflow_run_id": {
"type": "string",
"description": "Goal run id. Separate from trace_id. Returned on the completion receipt."
},
"goal": {
"type": "string",
"description": "The same user goal. When set, the envelope names the next playbook step."
},
"observed": {
"type": "object",
"description": "Playbook progress. completed_steps holds step ids, not action names.",
"additionalProperties": true
},
"density": {
"type": "string",
"description": "Wording of the current step. The allowed action set stays the same.",
"enum": [
"strict",
"guided",
"autonomous"
]
},
"publish_asked": {
"type": "boolean",
"description": "The user already asked to publish. Skips a second confirm."
},
"enforce_approval": {
"type": "boolean",
"description": "When true, financial, destructive, and access-control steps pause for approval."
},
"stopOnError": {
"type": "boolean",
"description": "Stop the batch at the first failed step. Default true."
},
"continueOnError": {
"type": "boolean",
"description": "Keep later steps running after a failure. Opposite of stopOnError."
},
"envelope": {
"type": "string",
"description": "Batch step payload shape. compact omits duplicate data/capability_result.",
"enum": [
"compact",
"full"
]
},
"recipe_id": {
"type": "string",
"description": "Expand a registered MCP recipe into steps before execute (see GET /mcp/recipes)."
},
"recipe_params": {
"type": "object",
"description": "Values for {{placeholders}} in the recipe.",
"additionalProperties": true
}
},
"additionalProperties": true
}
},
"required": [
"steps"
],
"description": "Batch execute. One tool; each step names a dotted action."
}Ausgabe-Schema
{
"type": "object",
"properties": {
"success": {
"type": "boolean",
"description": "True when every step succeeded."
},
"data": {
"type": "object",
"description": "Step payload or batch receipt.",
"additionalProperties": true
},
"error_code": {
"type": "string",
"description": "Stable machine code when success is false."
},
"trace_id": {
"type": "string",
"description": "Request trace id for logs and support."
}
},
"description": "CapabilityResult envelope; see structuredContent on tools/call when present."
}Community
Nachweis