> ## Documentation Index
> Fetch the complete documentation index at: https://docs.prysm1.com/llms.txt
> Use this file to discover all available pages before exploring further.

# MCP Manifest

> Retrieve the PRYSM MCP tool manifest — install PRYSM as an MCP server in any compatible AI client.

<Note>
  **GET** `https://api.prysm1.com/v1/mcp/manifest` · No authentication required
</Note>

Returns a complete [Model Context Protocol](https://modelcontextprotocol.io) manifest that
describes every PRYSM endpoint as an MCP-compatible tool. Use this to install PRYSM as
an MCP server in any compatible AI client (Claude Desktop, VS Code, JetBrains, and others).

Tool URLs in the response are absolute and ready to use — derived from the request's
`Host` header so they work against any deployment.

## Install via `@prysmai/mcp`

The fastest path is the pre-built NPM package:

```bash theme={null}
npx @prysmai/mcp
```

Or configure it directly in your MCP client:

```json claude_desktop_config.json theme={null}
{
  "mcpServers": {
    "prysm": {
      "command": "npx",
      "args": ["-y", "@prysmai/mcp"],
      "env": {
        "PRYSM_API_KEY": "prysm_sk_..."
      }
    }
  }
}
```

## Response

The manifest follows the standard MCP schema.

<ResponseField name="object" type="string">Always `mcp.manifest`.</ResponseField>
<ResponseField name="version" type="string">Manifest schema version (e.g. `prysm-mcp-manifest-v0.1`).</ResponseField>
<ResponseField name="base_url" type="string">Absolute base URL the tool `url`s are built from (derived from the request `Host`).</ResponseField>
<ResponseField name="tool_count" type="integer">Number of descriptors in `tools`.</ResponseField>
<ResponseField name="tools" type="object[]">Array of MCP tool descriptors. Each has `name`, `description`, `method`, `path`, `input_schema`, `auth_required`, and an absolute `url` (= `base_url` + `path`).</ResponseField>
<ResponseField name="install" type="object">Ready-to-paste MCP client config under `claude_code_config`.</ResponseField>

<RequestExample>
  ```bash cURL theme={null}
  curl https://api.prysm1.com/v1/mcp/manifest
  ```

  ```python Python theme={null}
  import httpx

  manifest = httpx.get("https://api.prysm1.com/v1/mcp/manifest").json()
  for tool in manifest["tools"]:
      print(tool["name"], "—", tool["description"][:60])
  ```

  ```typescript Node theme={null}
  const manifest = await fetch("https://api.prysm1.com/v1/mcp/manifest").then(r => r.json());
  manifest.tools.forEach(t => console.log(t.name));
  ```
</RequestExample>

<ResponseExample>
  ```json 200 theme={null}
  {
    "object": "mcp.manifest",
    "version": "prysm-mcp-manifest-v0.1",
    "base_url": "https://api.prysm1.com",
    "tool_count": 19,
    "tools": [
      {
        "name": "prysm.plans",
        "description": "List all PRYSM pricing plans with limits and model access. Public — no auth required.",
        "method": "GET",
        "path": "/v1/plans",
        "input_schema": { "type": "object", "properties": {}, "additionalProperties": false },
        "auth_required": false,
        "url": "https://api.prysm1.com/v1/plans"
      },
      {
        "name": "prysm.risk.score",
        "description": "Score an agent action against PRYSM's deterministic factor table. Returns score 0-100 + tier + the factors that fired. Pure dry-run; no side effects.",
        "method": "POST",
        "path": "/v1/risk/score",
        "input_schema": {
          "type": "object",
          "properties": {
            "kind": { "type": "string", "enum": ["edit", "deploy", "delete", "exec", "network", "read"] },
            "targets": { "type": "array", "items": { "type": "string" } }
          },
          "additionalProperties": false
        },
        "auth_required": true,
        "url": "https://api.prysm1.com/v1/risk/score"
      }
    ],
    "install": {
      "claude_code_config": {
        "mcpServers": {
          "prysm": { "transport": "http", "url": "https://api.prysm1.com/v1/mcp", "auth": "Authorization: Bearer ${PRYSM_API_KEY}" }
        }
      }
    }
  }
  ```

  <Note>Tool `url`s are the real PRYSM endpoint paths (e.g. `/v1/plans`, `/v1/risk/score`) prefixed with `base_url` — not a `/v1/mcp/tools/*` sub-path. Call them directly with `Authorization: Bearer $PRYSM_API_KEY` when `auth_required` is true.</Note>
</ResponseExample>
