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

A
Qualität der Beschreibung
100%
Vollständigkeit des Schemas
100%
Qualität der Benennung
50%
Risiko der Vergiftung
100%
Übereinstimmung der Berechtigungen
100%
Einhaltung des Protokolls
100%

Befunde (1)

  • LOWTool 'agentstack.execute' doesn't follow camelCase/snake_casein agentstack.execute

Basierend auf einer automatisierten Analyse der Tool-Definitionen und der Einhaltung des Protokolls.

Kontextkosten

~1,127Tokens (Tool-Definitionen)
~10.9 KBTypische Antwortgröße
Mittlere Auswirkung auf die Aufmerksamkeit (0.88% von 128k Kontext)

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-http

Was es kann

Tool-Inventar

Tools (1)

🟢 Nur lesen🟡 Schreiben🔴 Löschen⚪ Unbekannt
🔴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

Diesen Server bewerten

Nachweis

Aktuelle Beobachtungen

verifiziertVersion nicht aufgezeichnet1 Tools