Decion Labs

MCP tool reference

Decion MCP tools

Connection details, request requirements, available tools, and sample payloads for the Decion MCP server.

57 tools Streamable HTTP Bearer auth

Connection

MCP endpoint

https://mcp.decionlabs.ai/mcp

Auth header

Authorization: Bearer <decion_api_key>

Request requirements

Calling the MCP server

Use the streamable HTTP MCP endpoint with a Decion MCP API key. Tool calls that operate inside a workspace must include the target namespace slug.

  1. Configure your MCP runtime to call https://mcp.decionlabs.ai/mcp with Authorization: Bearer <decion_api_key>.
  2. Pass namespace on decision, knowledge, work-item, agent-session, and subject tool calls.
  3. Use mailbox ids on email tool calls when a specific mailbox is required.
  4. Use bulk decision import tools for historical training data.

MCP keys

MCP keys are bearer tokens. They can be scoped to a subset of canonical tools, namespaces, and mailboxes.

Namespaces

Namespaces isolate agent work under the same organization. A tool call without a valid active namespace is rejected.

Knowledge collections

Collections are namespace-scoped retrieval buckets. The same collection slug can exist in different namespaces without overlapping results.

Tools

Available tool groups

Decision tools

Submit compact decision requests with context and candidate actions, get ranked recommendations, and record outcomes to improve future runs.

Legacy *history_import* names remain available as deprecated aliases.

  • create_decision

    Create a persisted decision and return the current recommendation.

  • preview_decision

    Run the decision engine without persisting decision state.

  • explain_decision

    Explain the evidence, priors, and review signals behind one decision.

  • search_decision_precedents

    Search similar historical decision evidence without creating a decision.

  • list_decisions

    List decisions for one task and lifecycle status.

  • list_recent_decisions

    List the most recently updated decisions in a namespace.

  • get_namespace_summary

    Get a namespace snapshot including decisions, knowledge, and recent imports.

  • get_decision

    Get one stored decision and its current outcome state.

  • submit_outcome

    Close an open decision with an outcome.

  • expire_decision

    Expire an open decision without closing it.

  • delete_decision

    Hard-delete one decision and its learned history/evidence from a namespace.

  • start_bulk_decision_import

    Start a draft bulk decision import.

  • append_bulk_decision_import_chunk

    Append one chunk of resolved cases to a draft import.

  • finalize_bulk_decision_import

    Queue a staged import so the worker can process it.

  • get_bulk_decision_import

    Get current status and counters for a bulk import.

  • get_bulk_decision_import_failures

    List failed rows for one bulk import.

  • cancel_bulk_decision_import

    Cancel a draft, queued, or running bulk import.

Knowledge tools

Ingest text, Markdown, HTML, or PDF into namespace-scoped collections and retrieve grounded chunks with citations.

  • create_knowledge_collection

    Create a namespace-scoped knowledge collection.

  • list_knowledge_collections

    List knowledge collections available inside a namespace.

  • list_knowledge_sources

    List sources inside one knowledge collection.

  • delete_knowledge_collection

    Delete one knowledge collection and all of its sources and chunks.

  • ingest_knowledge_source

    Normalize, chunk, embed, and store one text, markdown, or HTML source.

  • ingest_knowledge_pdf

    Decode, extract, chunk, embed, and store one PDF source.

  • delete_knowledge_source

    Delete one knowledge source and its chunks.

  • replace_knowledge_source

    Replace one knowledge source in place with new content or a new PDF.

  • reindex_knowledge_source

    Re-chunk and re-embed one stored knowledge source.

  • get_knowledge_source

    Get one knowledge source by id.

  • search_namespace_knowledge

    Search across all or selected collections in one namespace.

  • search_knowledge

    Search one knowledge collection and return ranked chunk matches.

Email tools

Inspect organization mailboxes, read threads and attachments, draft replies, and explicitly send email after a decision is made.

  • list_email_mailboxes

    List organization mailboxes available for email work.

  • get_email_mailbox

    Get one mailbox by mailbox id.

  • list_email_threads

    List email threads across the organization or inside one mailbox.

  • get_email_thread

    Get one email thread with all messages and attachment metadata.

  • get_email_message

    Get one email message by id.

  • create_email_draft

    Create an outbound draft with optional attachments inside one mailbox.

  • send_email_draft

    Send one stored email draft through the configured provider.

  • get_email_attachment

    Fetch one stored attachment as base64 content.

  • archive_email_thread

    Archive one thread so it no longer appears in default inbox listings.

Work item tools

Create unclaimed work, lease active tasks, release handoffs, and complete shared work in the server-side task queue.

  • create_work_item

    Create one canonical work item in the shared queue.

  • list_work_items

    List work items in the shared queue with optional filters.

  • claim_work_item

    Claim an existing work item with a lease.

  • get_work_item

    Get one work item by id.

  • heartbeat_work_item

    Extend the lease on an active work item.

  • release_work_item

    Return an active work item to the unclaimed queue.

  • complete_work_item

    Mark an active work item completed.

Agent session tools

Persist ephemeral namespace-scoped checkpoint state for resumable runs, handoffs, cursors, and partial plans.

  • put_agent_session_state

    Create or replace ephemeral state for one agent session.

  • get_agent_session_state

    Get one stored agent session state by session id.

  • list_agent_sessions

    List live agent sessions in one namespace.

  • delete_agent_session_state

    Delete one stored agent session state.

Subject memory tools

Create durable subject records, append events, and link decisions to real-world entities across agents.

  • upsert_subject

    Create or update a generic subject record with shared metadata.

  • get_subject

    Get one subject record by natural key.

  • append_subject_event

    Append an immutable event to a subject timeline.

  • list_subject_events

    List recent events on a subject timeline.

  • delete_subject_event

    Delete one event from a subject timeline.

  • search_subjects

    Search shared subject memory by semantic similarity plus optional hard filters.

  • link_decision_to_subject

    Link a stored decision to a subject record.

  • delete_subject

    Delete one subject record and its timeline and links.

Authentication

Bearer token format

Every MCP request uses the same authorization header.

Authorization: Bearer dcnmcp_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Examples

JSON-RPC payload examples

These examples show the request body shape for commonly used MCP tools.

Example create_decision payload

{
  "namespace": "default",
  "task_id": "case_1001",
  "type": "response_strategy",
  "context": "Customer has not replied for 48 hours on a medium-priority email thread.",
  "actions": [
    "wait_24_hours",
    "send_followup_email"
  ],
  "tags": [
    "channel:email",
    "priority:medium"
  ],
  "preferred_action": "send_followup_email"
}

Example get_namespace_summary payload

{
  "namespace": "default"
}

Example append_bulk_decision_import_chunk payload

{
  "namespace": "default",
  "import_id": "imp_123",
  "cases": [
    {
      "task_id": "hist_001",
      "type": "response_strategy",
      "tags": [
        "channel:email"
      ],
      "context": "Historical case context.",
      "actions": [
        "send_followup_email",
        "wait_24_hours"
      ],
      "action_taken": "send_followup_email",
      "score": 1.0,
      "note": "Resolved"
    }
  ]
}

Example ingest_knowledge_source payload

{
  "namespace": "default",
  "collection": "support-playbooks",
  "title": "Refund escalation",
  "content_format": "markdown",
  "content": "# Refund escalation\n\nApprove a full refund when duplicate billing is confirmed."
}

Example create_email_draft payload

{
  "mailbox_id": "mbx_123",
  "to_recipients": [
    {
      "address": "[email protected]",
      "display_name": "Customer"
    }
  ],
  "subject": "Re: Your support request",
  "text_body": "Thanks for the update. We are still investigating and will follow up shortly.",
  "attachments": []
}

Example create_work_item payload

{
  "namespace": "default",
  "work_type": "case",
  "work_id": "case_1001",
  "metadata": {
    "priority": "high"
  },
  "subject_type": "case",
  "subject_id": "case_1001"
}

Example put_agent_session_state payload

{
  "namespace": "default",
  "session_id": "triage-run-001",
  "owner_label": "triage-agent",
  "ttl_seconds": 3600,
  "state": {
    "step": "gather_context",
    "cursor": "page_2",
    "work_item_id": "wki_123"
  }
}

Example upsert_subject payload

{
  "namespace": "default",
  "subject_type": "incident",
  "subject_id": "inc_12345",
  "idempotency_key": "subject-inc-12345-v1",
  "title": "Payments API latency spike",
  "tags": [
    "service:payments",
    "severity:high"
  ],
  "attributes": {
    "region": "us-east-1",
    "status": "investigating"
  }
}