Skip to content
The Pocket ProtectorDevelopersVisit TPP ↗

TPP documentation

Quickstart

Make a public, read-only county lookup with a sample ZIP code.

1. Connect

Use a client that supports Streamable HTTP, with the endpoint https://tools.thepocketprotector.com/mcp. Public tools do not need an account or API key.

Send Content-Type: application/json and Accept: application/json, text/event-stream. This example requests a protocol version currently supported by TPP:

curl https://tools.thepocketprotector.com/mcp \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json, text/event-stream' \
  -d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-06-18","capabilities":{},"clientInfo":{"name":"tpp-example","version":"1.0.0"}}}'

Follow the MCP initialization lifecycle in your client, including notifications/initialized. TPP uses stateless JSON responses.

2. Discover tools

{"jsonrpc":"2.0","id":2,"method":"tools/list","params":{}}

Use the returned names and schemas. A documentation build describes a release; tools/list identifies what the deployed connection currently exposes.

3. Run a lookup

curl https://tools.thepocketprotector.com/mcp \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json, text/event-stream' \
  -d '{"jsonrpc":"2.0","id":3,"method":"tools/call","params":{"name":"get_medicare_zip_counties","arguments":{"zip":"60614"},"_meta":{"tpp/source":"developer-quickstart"}}}'

The example includes an optional source tag that counts aggregate success, clarification and error outcomes. It records no ZIP, request body or client identity. Omit _meta to opt out. Repeated example calls count separately.

Read result.content and result.structuredContent. A successful lookup can return a confirmed location or a question requiring a selection. Do not guess a county when the tool asks for one.

4. Handle incomplete results

An HTTP success alone does not establish a completed lookup. Check JSON-RPC errors, result.isError, the structured status, and any next action. Wait for Retry-After after HTTP 429. Retain confirmed inputs when a service is unavailable.

For published content, continue with content search and citation.

Read this page as Markdown