v1.0.0
Initial public release.
Added
- Three-tool code-mode MCP surface —
search_api,describe_schema,
execute(the same pattern asclinicaltrials-mcp-server). - SDK bindings —
fr.*for FederalRegister.gov v1 (documents,
publicInspection,agencies,issues,suggestedSearches,images)
andecfr.*for the Electronic Code of Federal Regulations (titles,
admin.agencies,structure,ancestry,versions,full,search.*). - BM25 search over a curated endpoint + field dictionary
(schema/field-dictionary.json). - Sandbox —
isolated-vm(primary) and Deno subprocess (fallback) with
shared AST preflight viaacorn, wall-clock timeout, and heap cap. - stdio transport for Claude Desktop and MCPB.
- Streamable HTTP transport built on
@modelcontextprotocol/sdk1.29:
per-sessionStreamableHTTPServerTransport, SSE streaming, graceful
SIGTERM/SIGINT drain. - OAuth 2.0 Protected Resource Metadata per RFC 9728 at
/.well-known/oauth-protected-resource/mcp,WWW-Authenticateheader
pointing at it on 401. - Bearer token verification via
joseagainst any JWKS endpoint
(presets:clerk,workos,auth0,generic-oidc;embeddedHS256
for dev). - Hardening — per-IP token-bucket rate limiting, per-subject daily
quotas, Host-header allowlist for DNS-rebinding protection. - Deploy — multi-stage Dockerfile (
deploy/Dockerfile) that builds
isolated-vmand slims to anode:22-bookworm-slimruntime, plus a
Railway walkthrough indeploy/RAILWAY.md. - 27 tests across BM25, sandbox policy, both SDK clients (vs
undici
MockAgent), HTTP rate limiter, and an end-to-end MCP flow (initialize
→ notifications/initialized → tools/list → tools/call → sandbox → SDK
→ mocked upstream).