Context
After #44 bumped @modelcontextprotocol/sdk to 1.29.0, the server now negotiates protocol version 2025-11-25 automatically (src/mcp_server.ts uses LATEST_PROTOCOL_VERSION rather than a hardcoded value). That PR was intentionally scoped to the dependency/resolution fix only.
This issue tracks the optional spec features from the 2025-11-25 revision that are actually relevant to this server (stdio transport, read-only, 12 tools, one sampling-based tool). Auth/HTTP-transport additions (OIDC discovery, incremental scope consent, OAuth Client ID Metadata Docs, RFC 9728, Streamable HTTP/SSE changes) do not apply and are out of scope.
Candidate work (in rough priority order)
1. Tool icons (SEP-973)
The spec now allows icons metadata on tools, resources, resource templates, and prompts. SDK ships IconSchema/IconsSchema. Add icons to the 12 pinmeto_* tools for nicer client UI presentation.
2. Implementation.description field
serverInfo (src/mcp_server.ts:204) can now carry a human-readable description to align with the MCP registry server.json format and provide context during initialization.
3. Tool calling in sampling (tools / toolChoice) — investigate
pinmeto_get_google_review_insights is the only sampling-based tool. The spec now lets sampling requests offer tools to the model via tools/toolChoice. Likely unnecessary for review summarization, but worth a quick evaluation.
Explicitly out of scope (for reference)
- Experimental Tasks (SEP-1686) — durable requests/polling; would be a real feature, not a tweak. Could revisit for large bulk fetches (
pinmeto_get_locations) later.
- All auth / Streamable HTTP / SSE / OAuth changes (server is stdio, no auth).
Already compliant (no action needed)
- Validation errors returned as Tool Execution Errors, not Protocol Errors (SEP-1303) — server already uses
isError: true + structured errorCode.
- stderr used for all stdio logging.
- Tool naming follows
pinmeto_{action}_{network}_{resource}.
- JSON Schema 2020-12 dialect handled by the SDK's Zod layer.
References
Context
After #44 bumped
@modelcontextprotocol/sdkto 1.29.0, the server now negotiates protocol version2025-11-25automatically (src/mcp_server.tsusesLATEST_PROTOCOL_VERSIONrather than a hardcoded value). That PR was intentionally scoped to the dependency/resolution fix only.This issue tracks the optional spec features from the
2025-11-25revision that are actually relevant to this server (stdio transport, read-only, 12 tools, one sampling-based tool). Auth/HTTP-transport additions (OIDC discovery, incremental scope consent, OAuth Client ID Metadata Docs, RFC 9728, Streamable HTTP/SSE changes) do not apply and are out of scope.Candidate work (in rough priority order)
1. Tool icons (SEP-973)
The spec now allows
iconsmetadata on tools, resources, resource templates, and prompts. SDK shipsIconSchema/IconsSchema. Add icons to the 12pinmeto_*tools for nicer client UI presentation.registerToolconfig2.
Implementation.descriptionfieldserverInfo(src/mcp_server.ts:204) can now carry a human-readabledescriptionto align with the MCP registryserver.jsonformat and provide context during initialization.descriptiontoserverInfo3. Tool calling in sampling (
tools/toolChoice) — investigatepinmeto_get_google_review_insightsis the only sampling-based tool. The spec now lets sampling requests offer tools to the model viatools/toolChoice. Likely unnecessary for review summarization, but worth a quick evaluation.Explicitly out of scope (for reference)
pinmeto_get_locations) later.Already compliant (no action needed)
isError: true+ structurederrorCode.pinmeto_{action}_{network}_{resource}.References