Skip to main content

Tool catalogue

2 operations (GET): parameters, status codes, refusal bodies, and the same request in curl, HTTP, Python and TypeScript.

2 min read
View MarkdownEdit on GitHub

Tool catalogue

Base URL: https://api.codespar.dev

None of the operations below takes a credential: the published document declares them open. See Authentication for the rest of the API.

GET /meta-tools.json

GEThttps://api.codespar.dev/meta-tools.json
No credential

The tool catalogue the execute operation dispatches

THE LEGAL VALUES OF tool, and what each one accepts. POST /v1/sessions/{id}/execute names a tool by string; this is the document that gives those strings meaning, one entry per tool with a JSON Schema for its input.

Served with no credential, Access-Control-Allow-Origin: *, cached for five minutes. It carries no tenant data: names, descriptions and schemas, identical for every caller. /meta-tools.json and /v1/meta-tools.json return the same bytes.

READ IT BEFORE CONCLUDING A CAPABILITY IS MISSING. The tool descriptions and their schemas carry contracts this OpenAPI document does not repeat — which action values exist, which arguments are mandatory for which combination, and what a create answers when the instrument is not ready yet. A capability can be fully implemented and still read as absent to someone holding only this document.

Responses

StatusBodyDescription
200objectOK

Response 200

FieldTypeRequiredDescription
generated_from"tools/list"yesNames the source so the reader does not have to take the document's word for it: this is the same output the MCP transport answers tools/list with, not a second reading of the catalogue that could drift from it.
toolsarray of objectyes
Example request
curl -X GET https://api.codespar.dev/meta-tools.json \
  -H "Authorization: Bearer $CODESPAR_API_KEY"
GET /meta-tools.json HTTP/1.1
Host: api.codespar.dev
Authorization: Bearer $CODESPAR_API_KEY
import os
import requests

res = requests.get(
    "https://api.codespar.dev/meta-tools.json",
    headers={"Authorization": f"Bearer {os.environ['CODESPAR_API_KEY']}"},
)
res.raise_for_status()
data = res.json()
const res = await fetch("https://api.codespar.dev/meta-tools.json", {
  method: "GET",
  headers: {
    Authorization: `Bearer ${process.env.CODESPAR_API_KEY}`,
  },
});

const data = await res.json();
const result = await cs.api.get("/meta-tools.json");
Example response 200
application/json
{
  "generated_from": "tools/list",
  "tools": [
    {
      "name": "Example",
      "description": "string",
      "inputSchema": {}
    }
  ]
}

GET /v1/meta-tools.json

GEThttps://api.codespar.dev/v1/meta-tools.json
No credential

The tool catalogue, under the /v1 mount

Identical to /meta-tools.json, for a caller already pointed at the versioned prefix. Same bytes, same absence of a credential.

Responses

StatusBodyDescription
200objectOK

Response 200

FieldTypeRequiredDescription
generated_from"tools/list"yesNames the source so the reader does not have to take the document's word for it: this is the same output the MCP transport answers tools/list with, not a second reading of the catalogue that could drift from it.
toolsarray of objectyes
Example request
curl -X GET https://api.codespar.dev/v1/meta-tools.json \
  -H "Authorization: Bearer $CODESPAR_API_KEY"
GET /v1/meta-tools.json HTTP/1.1
Host: api.codespar.dev
Authorization: Bearer $CODESPAR_API_KEY
import os
import requests

res = requests.get(
    "https://api.codespar.dev/v1/meta-tools.json",
    headers={"Authorization": f"Bearer {os.environ['CODESPAR_API_KEY']}"},
)
res.raise_for_status()
data = res.json()
const res = await fetch("https://api.codespar.dev/v1/meta-tools.json", {
  method: "GET",
  headers: {
    Authorization: `Bearer ${process.env.CODESPAR_API_KEY}`,
  },
});

const data = await res.json();
const result = await cs.api.get("/v1/meta-tools.json");
Example response 200
application/json
{
  "generated_from": "tools/list",
  "tools": [
    {
      "name": "Example",
      "description": "string",
      "inputSchema": {}
    }
  ]
}
Tool catalogue | CodeSpar