STACK
MENU
DOCS / MCP / TOOL REFERENCE

MCP Tools Reference

A regular customer session exposes 131 MCP tools. Every name below is checked against the generated public count. Use the standard MCP tools/list request for current input schemas. The catalog is grouped by domain.

MCP can request Authority and poll the result, but it cannot approve the request or manage principals, proofs, receivers, bindings, erasure, or presentation payloads. An owner or admin reviews the exact request in the Console and verifies through the configured identity provider. Agent contexts cannot widen Authority and never receive identity-provider evidence.

Connect

STACK's MCP server speaks Streamable HTTP. Use MCP Setup for client commands and OAuth steps.

Live schema discovery

For parameter shapes, return values, and descriptions, query the server directly. The MCP handshake returns every tool's JSON-schema input definition, so your client (or the LLM driving it) receives the current schema.

json
// MCP JSON-RPC request
{ "jsonrpc": "2.0", "id": 1, "method": "tools/list" }

// Response (abridged) - one entry per tool
{
  "tools": [
    {
      "name": "stack_issue_passport",
      "description": "Issue a signed JWT Passport for one live Mission.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "agent_id": { "type": "string" },
          "mission_ids": { "type": "array", "items": { "type": "string" } },
          "intent_summary": { "type": "string" },
          "intent_services": { "type": "array" },
          "ttl_seconds": { "type": "number" }
        },
        "required": ["agent_id", "mission_ids"]
      }
    }
    // …
  ]
}

Use the server's tools/list response for schemas. Catalog names are stable, but parameters can change.

Tool annotations

Every tool in tools/list carries a human-readable title and three explicit boolean hints, so a client can decide which calls need confirmation.

  • readOnlyHint is true only when the tool changes nothing. Tools that meter, persist or create state are not read-only, including stack_scan, stack_verify_connection, stack_simulate_intent and stack_fleet_enrollment_challenge.
  • destructiveHint is true when the tool revokes, deletes, disconnects, expires, collects, suspends, blocks or ends something, or overwrites or resets existing configuration.
  • openWorldHint is true when the tool reaches a party outside your STACK account: a provider API, an email, SMS or webhook recipient, an identity provider, or the shared skills marketplace.

Directory endpoint

https://mcp.getstack.run/directory serves the tool set listed in the Claude and ChatGPT connector directories. It is the catalog above without the tools that execute arbitrary provider requests, move wallet funds, handle credentials or verification codes, take or return Passport tokens, or require an agent or platform-staff session:

  • Provider execution: stack_proxy_request, stack_get_proxy_operation.
  • Wallet and paid skill invocation: stack_invoke_skill, stack_check_invocation, stack_list_pending_invocations, stack_complete_invocation, stack_fail_invocation.
  • Credentials and one-time codes: stack_connect_service, stack_list_credential_templates, stack_send_verification_code, stack_verify_delivery_method.
  • Scopes withheld from directory sign-in because they also authorize unapproved administration: team (stack_invite_member, stack_update_member, stack_revoke_member), identity configuration (stack_start_identity_verification, stack_revoke_identity_claim), authority (stack_request_authority), marketplace publishing (stack_publish_skill, stack_suspend_skill, stack_activate_skill) and partner administration (stack_partner_create_tenant, stack_partner_revoke_tenant, stack_partner_create_tenant_webhook, stack_partner_revoke_connection).
  • Passport tokens as input or output: stack_issue_passport, stack_start_mission, stack_partner_issue_tenant_passport, stack_verify_passport, stack_refresh_passport, stack_delegate_passport, stack_simulate_intent, stack_submit_intent.
  • Agent-session only: stack_renew_mission, stack_fleet_enrollment_challenge, stack_enroll_fleet_agent.

Directory tool schemas omit the optional passport_token parameter. A directory sign-in requests every scope these tools need, so no directory tool needs a second authorization. stack_add_delivery_method returns a masked hint of a webhook signing secret, never the secret. The full catalog remains at https://mcp.getstack.run/mcp.

Common flows

These examples cover common calls. They assume an authenticated OAuth session or a valid headless API key.

Issue a passport with declared intent

Every Passport is issued for exactly one live Mission. Open the Mission for the agent with stack_open_mission, then pass its ID in mission_ids. stack_start_mission does both in one call. Declaring intent is required for enforced and logged agents; omitting it throws ACCOUNTABILITY_REQUIRED.

json
{
  "method": "tools/call",
  "params": {
    "name": "stack_open_mission",
    "arguments": {
      "agent_id": "agt_support_bot",
      "intent_summary": "Answer one customer ticket and post a resolution",
      "intent_services": ["slack", "github"]
    }
  }
}

// Returns { "mission_id": "ms_...", "claim_id": "...", "expires_at": "..." }

{
  "method": "tools/call",
  "params": {
    "name": "stack_issue_passport",
    "arguments": {
      "agent_id": "agt_support_bot",
      "mission_ids": ["ms_..."],
      "intent_summary": "Answer one customer ticket and post a resolution",
      "intent_services": ["slack", "github"],
      "will_delegate": false,
      "checkpoint_interval": "5m"
    }
  }
}

Completing or revoking the Mission revokes every Passport bound to it.

Grant a service with a named intent

Use an intent shortcut instead of hand-authoring constraints. The server expands the intent to the equivalent constraint array at grant time.

json
{
  "method": "tools/call",
  "params": {
    "name": "stack_grant_agent_access",
    "arguments": {
      "agent_id": "agt_support_bot",
      "service_connection_id": "scon_slack_prod",
      "scopes": ["chat:write"],
      "intents": [
        { "name": "slack.post_to_channel",
          "params": { "channel": ["C0123", "C0456"] } }
      ]
    }
  }
}

Catalog: call stack_list_intents or read/docs/concepts/intents.

Proxy an outbound HTTP call

Route each outbound call that STACK should govern through stack_proxy_request with the Passport's X-Passport-Token. The proxy verifies, enforces scope + constraints, injects the credential, and returns the final screened response. For a write, create and persist a stable authority_request_id before the tool call.

json
{
  "method": "tools/call",
  "params": {
    "name": "stack_proxy_request",
    "arguments": {
      "passport_token": "eyJhbGciOi...",
      "authority_request_id": "op_job_4821_slack_0001",
      "service": "slack",
      "method": "POST",
      "url": "https://slack.com/api/chat.postMessage",
      "body": { "channel": "C0123", "text": "Ticket #1234 resolved" }
    }
  }
}

Reuse that operation ID only when every request field is unchanged. If the caller loses the response, use stack_get_proxy_operation to read its state or the stored permitted response. A generic unknown outcome is not sent again automatically. Full contract: Proxy operation recovery.

Submit a checkpoint (enforced mode)

The response can include new_expires_at for the stored monitoring deadline. The checkpoint does not change the signed JWT expiry or return a new token.

json
{
  "method": "tools/call",
  "params": {
    "name": "stack_checkpoint",
    "arguments": {
      "passport_jti": "pp_8f3a",
      "services_used": ["slack", "github"],
      "actions_count": 7,
      "summary": "Replied to ticket #1234; opened PR #502"
    }
  }
}

Check out the Passport and trigger review

Mission completion does not submit this checkout.

json
{
  "method": "tools/call",
  "params": {
    "name": "stack_checkout",
    "arguments": {
      "passport_jti": "pp_8f3a",
      "services_used": ["slack", "github"],
      "actions_count": 12,
      "summary": "Resolution delivered to customer; PR merged"
    }
  }
}

Revoke a passport and cascade

Single-Passport revocation revokes the JTI and each active delegated child. The next STACK-verified call rejects a revoked Passport. The revocation event channel is internal.

json
{
  "method": "tools/call",
  "params": {
    "name": "stack_revoke_passport",
    "arguments": { "jti": "pp_8f3a", "reason": "Rotation" }
  }
}

Invoke a skill

json
{
  "method": "tools/call",
  "params": {
    "name": "stack_invoke_skill",
    "arguments": {
      "skill_id": "skl_refund_calculator",
      "passport_id": "pp_8f3a",
      "input": { "order_id": "ord_123", "customer_tier": "gold" }
    }
  }
}

Sealed skills return synchronously. Open skills return apending status; pollstack_check_invocation until completed.

Deposit and collect a drop-off

json
// Producer
{ "method": "tools/call", "params": { "name": "stack_create_dropoff",
  "arguments": {
    "from_agent": "agt_producer", "to_agent": "agt_consumer",
    "schema": { "type": "object", "required": ["summary"] },
    "ttl_seconds": 1800
  }}}

{ "method": "tools/call", "params": { "name": "stack_deposit",
  "arguments": { "dropoff_id": "dof_abc", "agent_id": "agt_producer",
    "payload": { "summary": "…" } }}}

// Consumer
{ "method": "tools/call", "params": { "name": "stack_collect",
  "arguments": { "dropoff_id": "dof_abc", "agent_id": "agt_consumer" }}}

Full tool catalog

Every tool shipped, grouped by domain. Names are stable; calltools/list for the live schema.

Fleets

stack_get_fleetRead one fleet policy and its shared usage.
stack_get_fleet_membershipRead the fleet policy an agent belongs to.
stack_renew_missionRenew a Mission's Passport. The Mission keeps its original limits and usage.
stack_start_missionOpen a Mission and issue its Passport in one call. Operator form: pass agent_id, mission (intent_summary, plus optional intent_services, caps and expires_in_seconds) and optional passport fields. Fleet form: request the access and limits needed for a run; STACK checks them against the fleet policy. Reuse the idempotency key to retry the same fleet request.
stack_enroll_fleet_agentEnroll an agent using its public key and signed challenge. The caller must be an approved provisioner for this policy.
stack_fleet_enrollment_challengeRequest a challenge for enrolling an agent under an approved fleet policy. The new agent signs it with its own private key.
stack_revoke_fleet_memberRevoke one agent's membership in a fleet.
stack_list_fleet_membersList the agents enrolled under a fleet policy.
stack_revoke_fleetRevoke a fleet policy. Its agents lose permission to continue work through STACK.
stack_revise_fleetReplace a fleet policy after operator approval. Supply its current revision and reuse the idempotency key when retrying the same change.
stack_activate_fleetSet the connections, actions and limits a fleet may use. Activation requires operator approval. Retry the same request with its approval ID and idempotency key after approval.
stack_list_fleetsList fleet policies and their current limits.

Agents

stack_register_agentRegister a new agent with STACK and return its record. Calls from MCP and API-key sessions require human approval. Agents never receive raw credentials; credential_access only sets the proxy posture (default proxy_only). key_mode defaults to stack_managed and is provisioned automatically.
stack_update_agentUpdate an agent's settings after creation: credential_access, accountability_mode, on_warning/on_critical, skill access, or suspend/reactivate. Tightening applies immediately; reactivation, added authority or weaker safeguards require human approval. key_mode is immutable.
stack_list_agentsList all registered agents for your account.
stack_unblock_agentClear an agent's passport_blocked state (after an auto-block from a critical security event) so it can issue passports again. Governance step-up: without governance_approval_id the call returns 403 GOVERNANCE_APPROVAL_REQUIRED with an approval id (gvr_*); a human approves at /governance/approvals, then retry the same call passing governance_approval_id.
stack_allow_skillAdd a skill to an agent's allowed_skills list. This expands executable authority, so calls from MCP and API-key sessions require human approval.
stack_disallow_skillRemove a skill from an agent's allowed_skills list. Removing a skill that is not on the list succeeds without change.

Services & Credentials

stack_connect_serviceCreate a connection between your account and a catalog service (Slack, GitHub, Notion, etc.) with the requested OAuth scopes. Returns the connection record.
stack_list_servicesList all available services in the catalog that can be connected (providers, not your connected instances).
stack_list_connected_servicesList your connected service instances with each connection's id, provider, status, and stored scopes.
stack_disconnect_serviceDisconnect one service connection and revoke dependent Passports.
stack_grant_agent_accessGrant an agent access to a connected service with scopes, constraints, and permitted data sources. Adding a new source requires exact human approval before retry.
stack_list_intentsList available named intents (e.g. "slack.post_to_channel") that expand to parameter-level constraints in grants and passports.
stack_revoke_agent_accessRevoke all service access for an agent.
stack_get_agent_permissionsGet all service permissions granted to an agent.
stack_list_credential_templatesList available credential templates for manual service connections.
stack_verify_connectionVerify a service connection is healthy by testing its credentials.

Passports

stack_issue_passportIssue a signed JWT Passport for one live Mission. mission_ids is required and holds exactly one ms_* ID. Enforced mode uses the checkpoint interval as TTL. Other modes default to 15 minutes. The hard maximum is 1 hour, and the Passport never outlives its Mission.
stack_verify_passportVerify a passport token is valid, not expired, and not revoked.
stack_refresh_passportRefresh a passport before or after expiry (within 24h). Preserves session and delegation chain.
stack_delegate_passportDelegate a Passport to a child agent. Supply the parent token and exact connection scopes for the child. STACK checks the parent authority and permits only narrower access.
stack_list_active_passportsList all active (non-expired, non-revoked) passports. Filter by agent or session.
stack_revoke_passportRevoke a specific Passport by JTI. The next STACK-verified call rejects it.
stack_revoke_agent_passportsRevoke ALL active passports for a specific agent.
stack_revoke_sessionRevoke an entire session chain -- root passport and all delegated passports.
stack_revoke_all_passportsEMERGENCY: Revoke ALL active passports across all agents. Requires confirm: true.

Accountability

stack_checkpointSubmit a progress checkpoint for an enforced or logged Passport. Reports services used and actions taken.
stack_checkoutSubmit the final Passport report. Triggers the review engine. Mission completion is separate.
stack_get_passport_reportGet full accountability report: intent, checkpoints, checkout, and review decision.
stack_list_pending_reviewsList flagged or blocked passport checkouts pending operator review.
stack_decide_reviewApprove or block a flagged passport checkout. Can block agent from future passports. decision=approved requires a governance step-up: the first call returns 403 GOVERNANCE_APPROVAL_REQUIRED with an approval id (gvr_*); after a human approves in the dashboard, retry with governance_approval_id. decision=blocked never steps up.

Drop-offs

stack_create_dropoffCreate a point-to-point drop-off between two agents with schema validation and TTL. An agent passes its Mission Passport as passport_token.
stack_depositDeposit a package into a drop-off. Validates against declared schema, encrypts at rest. An agent passes its Mission Passport as passport_token.
stack_collectCollect a package from a drop-off. Decrypts and returns data, then deletes from storage. An agent passes its Mission Passport as passport_token.
stack_get_dropoff_statusGet current status of a drop-off (created, deposited, collected, expired, failed).
stack_list_dropoffsList the drop-offs visible to this credential.
stack_expire_dropoffManually expire a drop-off and permanently delete its package.

Skills

stack_publish_skillPublish a skill to the marketplace. Supports open, sealed, and source execution modes.
stack_browse_skillsBrowse the skills marketplace with filters for trust level, tags, and search.
stack_get_skillGet details of a specific skill including input/output schemas.
stack_suspend_skillSuspend one of your published skills.
stack_activate_skillReturn one of your suspended skills to active status.
stack_invoke_skillInvoke a skill with input data. Paid skills debit the caller's STACK wallet. Poll stack_check_invocation for result.
stack_check_invocationCheck invocation status. Returns decrypted output when completed.
stack_list_pending_invocationsList pending invocations for skills you provide. Poll this for work.
stack_complete_invocationComplete a skill invocation by submitting schema-validated, encrypted output.
stack_fail_invocationMark a claimed open-skill invocation as failed and release its reserved payment.
stack_check_trust_levelCheck if your trust level meets a skill's requirements. Returns upgrade guidance.
stack_list_favorite_skillsList your saved/favorite skills for quick access.
stack_post_skill_requestPost a request for a skill capability you need. Other operators can discover it and build matching skills.
stack_list_skill_requestsBrowse open skill requests from other operators.
stack_find_matching_skillsFind skills that match a specific skill request.
stack_suggest_skill_compositionGet suggestions for combining multiple skills to fulfill a complex request. Returns chain suggestions.

Team

stack_invite_memberInvite a team member by email with a role and optional connection restrictions.
stack_list_membersList all team members and their statuses.
stack_revoke_memberRevoke a team member and end their access.
stack_update_memberUpdate a member's role or allowed connections.

Identity Settings

stack_get_identity_settingsGet identity security settings: claim TTL, inheritance mode, auto-revoke.
stack_list_identity_providersList identity providers and their configured status.
stack_start_identity_verificationStart a configured identity-provider flow. Returns only the session reference, provider URL or QR data, and expiry; identity documents and proof material stay outside MCP.
stack_list_identity_claimsList the operator identity claims visible to this session.
stack_revoke_identity_claimRevoke one identity claim and cascade to Passports that carry it.

Missions

stack_open_missionOpen a Mission with the access and limits needed for a job. Pass agent_id to assign it to that agent. A fleet agent supplies its fleet policy and requested access. Issue a Passport with the returned Mission ID, or use stack_start_mission to do both together.
stack_complete_missionComplete a Mission and submit its output. STACK checks any declared output schema before accepting successful completion, stores the output encrypted and signs its digest. Every Passport bound to the Mission is revoked.
stack_revoke_missionRevoke a Mission. Every Passport bound to it is revoked, whatever the reason.
stack_get_missionGet one Mission with current cap usage.
stack_list_missionsList Missions for the operator.

Authority Requests

stack_request_authorityCreate a pending request for one exact agent job and return the human approval URL. This does not grant access.
stack_get_authority_requestCheck whether the request is pending, rejected, expired, or completed. Completed requests return the opaque binding reference.

Proxy

stack_proxy_requestSend a request through STACK's credential proxy. Non-GET calls require a persisted authority_request_id. Exact retries join one admitted operation; changed requests conflict, and a generic unknown outcome is not sent again automatically.
stack_get_proxy_operationRead delivery, replay and accounting state for one proxy operation. Can return the stored screened response when the live Passport still covers it. This read is unmetered; the operation ID does not grant access.
stack_proxy_usageCheck monthly proxy usage and remaining quota.

Usage & Billing

stack_usageOne-call rollup: all audit activity, the metered action subset against the plan, detail coverage, spend by bucket, wallet balance, and publisher earnings. All money is in cents. Defaults to the billing period; pass since/until (ISO-8601 or unix-ms) to scope the flow metrics to a window.

Intents

stack_simulate_intentDry-run an Intent against a passport. Returns allowed + denial_reasons + diagnostics. Emits a signed intent_simulation claim.
stack_submit_intentSubmit an Intent for operator approval. Required before enforced-mode producer calls. Returns approval_id; pair with stack_get_intent_approval to poll.
stack_get_intent_approvalFetch an intent approval row by id. Returns terminal status (pending|approved|rejected|expired|consumed). Poll after stack_submit_intent.

Content Scan

stack_scanScan retrieved content (email/document/webpage/API response) for prompt-injection markers BEFORE feeding to the LLM. Three layers: a regex catalog, encoding-aware normalization (base64/URL/hex/leetspeak/homoglyphs/zero-width/ROT13/reverse), and an LLM classifier for content the heuristics flag. Returns verdict (clean, suspicious or critical), match details, scan_id and duration_ms. Each scan is metered.
stack_scan_usageCheck monthly /v1/scan usage and remaining quota.

Security Events

stack_list_security_eventsList unresolved security events (credential misuse, delegation violations, etc.).
stack_get_security_eventGet one security event by ID.

PII Redaction Config

stack_get_pii_configThreshold and country scope in force for the LLM gateway. Never 404s.
stack_set_pii_configTune the confidence needed to redact, and which countries’ identifier schemes to run. Higher threshold redacts less.
stack_reset_pii_configBack to built-in defaults. Always needs a human governance approval.

Detector Customization

stack_list_detector_configsList every per-detector customization this operator has set. Empty list means defaults.
stack_get_detector_configGet a single detector's config. 404 means defaults.
stack_upsert_detector_configCustomize a detector for your traffic — custom regex, whitelist suppression, severity overrides, master switch. Pro and above. Writes are direction-classified: tightening applies immediately; a LOOSENING or MIXED delta returns 403 GOVERNANCE_APPROVAL_REQUIRED with an approval id (gvr_*) — a human approves at /governance/approvals, then retry with governance_approval_id.
stack_reset_detector_configReset a detector to built-in defaults — deletes the customization row. Pro and above. Always requires a governance step-up (reset direction is unknowable): first call returns 403 with an approval id, retry with governance_approval_id after a human approves in the dashboard.

Audit

stack_audit_listTail recent audit log entries — newest-first. Filter by agent_id or passport_jti; pass since (epoch ms) for incremental polling. Cascade revokes show as one passport.revoke + one passport.revoke_cascade per child.
stack_audit_chain_headReturn the latest entry hash + total entry count. Anchor externally to prove later that no row was rewritten.
stack_audit_verify_chainWalk the chain and verify cryptographic integrity. Reports first_break with reason on failure.

Mission Evidence

stack_view_mission_activityView the current recorded mission events in time order. This is a live view and not a stored file.
stack_list_mission_operator_reviewsList signed Operator review revisions. Old dossier claims remain readable.
stack_export_signed_recordCreate one immutable Signed record with the mission claims and verification material available at export time.
stack_list_signed_recordsList Signed records, with an optional mission, session, incident, or period scope.
stack_get_signed_recordGet one Signed record receipt and its parsed signed claim.

Partner — Connect with STACK

stack_partner_list_connectionsList every Connect-with-STACK grant your partner operator holds (all statuses). Never returns tokens.
stack_partner_get_connectionGet one grant by grant_id (pgr_*). Returns status, scopes, allowed_providers, timestamps - never the token.
stack_partner_revoke_connectionRevoke a grant. Grant-created agents' Passports revoke, webhooks return 404, connections disconnect, and the token fails on its next request. Returns cascade counts.
stack_partner_create_tenantCreates a white-label tenant for one of your customers and returns its operator ID. The tenant has no plan of its own and draws from your allowance and wallet. Credentials and signing setup use authenticated REST or SDK calls outside assistant conversations.
stack_partner_list_tenantsLists your white-label tenants with their metadata and month-to-date usage of your pooled allowance. Never returns tenant audit content or API keys.
stack_partner_get_tenantReturns one white-label tenant's metadata, status, and month-to-date usage of your pooled allowance.
stack_partner_revoke_tenantRevokes a white-label tenant along with its webhooks and Passports. Returns the cascade counts.
stack_partner_create_tenant_webhookProvisions an inbound webhook under a white-label tenant and returns its URL and metadata. A partner owner/admin configures signing through REST or SDK; MCP never returns signing secrets.
stack_partner_issue_tenant_passportIssues a Passport under a white-label tenant, signed with the tenant's key, for outbound MIME stamping. mission_ids is required and holds exactly one Mission opened for the tenant agent. Counts against your pooled allowance.

LLM Usage

stack_llm_usage_listList cursor-paginated LLM calls with provider, payer, token, cost, fee, hold, and Mission fields.
stack_llm_usage_summarySummarize LLM use by day, surface, payer, provider, and optional model.

Inbound Webhooks

stack_create_inbound_webhookCreate a signed inbound endpoint. Agent-bearing contexts cannot nominate a forward URL.
stack_list_inbound_webhooksList inbound webhook endpoints for this operator or grant.
stack_get_inbound_webhookGet one inbound endpoint, its signing setup status and counters. Provider secrets are configured through the owner/admin API or SDK.
stack_revoke_inbound_webhookRevoke an inbound endpoint.

Notifications

stack_add_delivery_methodAdd a notification delivery method (email, SMS, or webhook).
stack_list_delivery_methodsList all configured notification delivery methods.
stack_delete_delivery_methodDelete a delivery method. Cascades to associated rules.
stack_send_verification_codeSend a verification code to a pending delivery method.
stack_verify_delivery_methodVerify a delivery method with a 6-digit code.
stack_test_delivery_methodSend a test notification to a verified delivery method.
stack_create_notification_ruleCreate a rule targeting delivery methods for specific event types and severities.
stack_list_notification_rulesList all notification rules with their associated delivery methods.
stack_update_notification_ruleUpdate a notification rule -- change delivery methods, events, or severity.
stack_delete_notification_ruleDelete a notification rule.

Related

  • /docs/concepts/passports - what a passport carries and how it verifies
  • /docs/concepts/intents - named permission shortcuts used in grant and issue
  • /docs/concepts/constraints - parameter-level scope enforced at the proxy
  • /docs/concepts/revocation - single/bulk revoke and cascade behavior
  • /docs/api/audit - audit export, chain-head, verify-chain
  • /docs/api/billing - wallet, tier, overage
stack | Docs