---
title: "Api Mcp Tools Public Json"
method: GET
path: "/api/mcp/tools.json"
tags: ["MCP"]
---

# Api Mcp Tools Public Json

`GET /api/mcp/tools.json`

## Request

- Base URL: `https://www.oxfordledge.com` (the document declares no server; this is the origin it was published from)
- URL: `https://www.oxfordledge.com/api/mcp/tools.json`
- Auth: none declared

Public MCP tool catalog.

Returns the full {name, description, input_schema} projection for
every registered MCP tool. Anonymous access; safe to expose (no
handler internals or auth-gated metadata leak through).

## Response `200`

Successful Response

- MCPToolsPublicResponse: Response from GET /api/mcp/tools.json — public MCP tool catalog. Wave 5 / PR8 (audit triage 2026-05-06). Anonymous access; safe to expose because the projection is filtered to public fields only (no dispatcher internals leak through).
  - `tools` MCPToolPublic[], required: All registered MCP tools, sorted by name. Empty list when the MCP module is unavailable (the page renders an empty-state message rather than 500ing).
    - `name` string, required: Canonical tool name (snake_case). Same identifier Claude Desktop / Cursor / other MCP clients invoke.
    - `description` string, required: One- or two-sentence summary of what the tool does. Sourced from the TOOLS array; mirrors the description the MCP-protocol list_tools response sends to clients.
    - `input_schema` object: JSON Schema for the tool's arguments. The same schema MCP clients use to validate calls before sending.
    - `group` string, nullable: Catalog group the /mcp page files the tool under -- one of the nine authored names in tools/mcp_tool_groups.py.
    - `summary` string, nullable: One index line (<= 120 chars, imperative, no trailing period). The `description` remains the contract.
    - `in_pip_subset` boolean, nullable: True when the oxford-ledge-mcp pip package also dispatches this tool (the wheel intersected with the hosted catalog).
    - `requires_key` boolean, nullable: True when an anonymous POST /mcp is refused for this tool -- an X-API-Key (or linked OAuth token) is needed.
    - `min_tier` string, nullable: Lowest account tier that executes the tool, or null when any caller may (the /mcp contract's 'anonymous, but <tier> at execution' column).
    - `annotations` object, nullable: MCP tool annotations as sent on tools/list (readOnlyHint False marks a write tool).
  - `count` integer, required: len(tools). Convenience for clients that want to show 'N tools available' without iterating the array.

---

[API](https://skmtc.dev/oxfordledge/apis/oxford-ledge-api.md) · [All operations](https://skmtc.dev/oxfordledge/apis/oxford-ledge-api/llms.txt) · [OpenAPI document](https://skmtc.dev/oxfordledge/apis/oxford-ledge-api/revisions/e832a1260f0b?raw)
