{"name":"io.github.agentstacktech/agentstack","slug":"agentstacktech-agentstack","title":"AgentStack (agentstack.tech)","description":"Backend for AI agents: one batched tool over ~668 actions (hosting, storage, auth, payments).","url":"https://mcp.market/server/agentstacktech-agentstack","rating":null,"grade":"B","score":79,"certified":false,"status":"active","category":"security","tags":["security"],"presence":{"score":28,"stars":2,"forks":0,"downloads_week":null,"last_push_at":"2026-10-08T22:01:36.000Z","license":null},"uptime":{"percent":86,"checks":28,"ok":24,"last_checked_at":"2026-11-04T06:40:35.896Z","last_ok_at":"2026-11-03T21:45:44.570Z","latency_ms":760},"claimed":false,"transport":"remote","callable_via_gateway":true,"default_price_micros":0,"repository":"https://github.com/agentstacktech/AgentStack","website":"https://agentstack.tech","version":"1.0.0","remotes":[{"type":"streamable-http","url":"https://agentstack.tech/mcp"}],"packages":[],"tools":[{"name":"agentstack.execute","description":"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. Cheap and batchable on one sync execute: agents.work_next, agents.plan_get, agents.plan_claim. One per sync execute: agents.plan_propose, agents.plan_apply_proposal, agents.plan_recovery_scan, context.get. 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). Packs session.v1 and batch.v1: GET /mcp/actions field execute_budget.packs. Send context.project_id; other session fields default server-side. 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 and other heavy actions per execute_budget; agents.run with wait=true; agents.plan_apply_proposal, agents.plan_propose, agents.plan_recovery_scan, context.get). agents.work_next, agents.plan_get, and agents.plan_claim are cheap and may share that batch. 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.*).","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"steps":{"type":"array","minItems":1,"description":"Ordered steps. One heavy LLM step per sync execute.","items":{"type":"object","description":"One catalog action invocation.","properties":{"id":{"type":"string","description":"Unique step id within this batch."},"action":{"type":"string","description":"Dotted action from GET /mcp/actions."},"params":{"type":"object","description":"Args per discovery.describe for this action.","additionalProperties":true},"if":{"type":"object","description":"Optional predicate; step runs when it matches.","additionalProperties":true},"dependsOn":{"type":"array","description":"Step ids that must succeed before this step (batch DAG).","items":{"type":"string"}},"depends_on":{"type":"array","description":"Snake_case alias of dependsOn (executor accepts both).","items":{"type":"string"}}},"required":["id","action"]}},"context":{"type":"object","description":"session.v1 scope. Other context keys accepted via additionalProperties.","properties":{"project_id":{"type":"integer","description":"session.v1. Required tenant project id."},"generation_env_uuid":{"type":"string","description":"Sandbox env_uuid anchor when not using prod head."}},"additionalProperties":true},"options":{"type":"object","description":"batch.v1 controls. Extra keys in execute_budget.packs wire_only_in_catalog.","properties":{"async":{"type":"boolean","description":"Queue batch; poll discovery.job_status."},"workflow_run_id":{"type":"string","description":"Inverse workflow run id; echo prior execute. Binds receipts to instruction_packet.step_id."},"goal":{"type":"string","description":"User goal text for inverse playbook stamping."},"observed":{"type":"object","description":"Echo server workflow_runtime.observed after execute (client resume).","properties":{"completed_steps":{"type":"array","description":"Playbook step ids finished.","items":{"type":"string"}},"workflow_revision":{"type":"integer","description":"Monotonic cursor revision."},"succeeded":{"type":"array","description":"Canonical MCP action ids succeeded this run.","items":{"type":"string"}},"workflow_state_key":{"type":"object","description":"Binding key for guidance + receipts.","properties":{"workflow_run_id":{"type":"string","description":"Run id."},"project_id":{"type":"integer","description":"Tenant project."},"principal_id":{"type":"integer","description":"User id."},"graph_home":{"type":"string","description":"project | user."}},"additionalProperties":true},"goal_verification":{"type":"object","description":"Release criteria lane (verified, pending, satisfied).","additionalProperties":true},"evidence":{"type":"object","description":"Playbook evidence slots merged on advance.","additionalProperties":true},"current_step_id":{"type":"string","description":"Active playbook step after last advance."}},"additionalProperties":true},"density":{"type":"string","description":"Step wording strictness.","enum":["strict","guided","autonomous"]},"enforce_approval":{"type":"boolean","description":"Pause financial or destructive steps for approval."},"stopOnError":{"type":"boolean","description":"Stop at first failed step. Default true (session.v1). Omitted with all plain_read steps → smart continue (see executionMode)."},"continueOnError":{"type":"boolean","description":"When true, run remaining steps after a failure (pairs with stopOnError)."},"executionMode":{"type":"string","description":"sequential | dag | smart. Omit or smart: plain_read batches may continue on error.","enum":["sequential","dag","smart"]},"goal_text":{"type":"string","description":"Alias for goal — inverse playbook stamping."},"recipe_id":{"type":"string","description":"Expand MCP recipe from GET /mcp/recipes."},"recipe_params":{"type":"object","description":"Recipe placeholder values.","additionalProperties":true},"idempotency_key":{"type":"string","description":"Client retry key. The same key returns the same receipt."}},"additionalProperties":true}},"required":["steps"],"description":"batch.v1 execute. Packs: GET /mcp/actions execute_budget.packs. One dotted action per step; discovery.describe for params."}}],"scan":{"score":79,"grade":"B","scanned_at":"2026-10-14T05:25:42.143Z","report":{"scannerVersion":"0.1.10","scannedAt":"2026-10-14T05:25:42.081Z","components":{"code":{"score":-1,"max":25,"notes":["remote-only server, no package to scan"]},"reliability":{"score":20,"max":20,"notes":["remote reachable in 1725ms"]},"poisoning":{"score":15,"max":15,"notes":["1 tool descriptions checked"]},"auth":{"score":3,"max":15,"notes":["open endpoint exposes 1 write-action tools with no auth"]},"maintenance":{"score":15,"max":15,"notes":["last push 5 days ago"]},"identity":{"score":6,"max":10,"notes":["registry namespace matches repository owner"]}},"findings":[{"id":"auth.open-write","severity":"high","component":"auth","title":"Write-action tools reachable without authentication"}],"inputs":{"probes":[{"url":"https://agentstack.tech/mcp","reachable":true,"authRequired":false,"latencyMs":1725,"serverInfo":{"name":"agentstack","version":"0.4.22"}}],"packages":[],"repo":{"found":true,"owner":"agentstacktech","repo":"AgentStack","archived":false,"pushedAt":"2026-10-08T22:01:36Z","stars":2,"forks":0,"openIssues":1,"ownerType":"User","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/252260044?v=4","ownerCreatedAt":"2025-12-31T01:01:41Z"},"icon":{"url":"https://agentstack.tech/icons/icon-512.png","source":"site","width":512,"height":512},"presence":{"stars":2,"forks":0,"downloadsWeek":null,"license":null,"lastPushAt":"2026-10-08T22:01:36.000Z","score":28}}}},"grade_history":[],"reviews":[]}