Skip to content

Stage 1: tool annotations, homepage, log scrubbing, license, CI - #4

Merged
hsingh-aai merged 2 commits into
mainfrom
stage-1-basics
Oct 26, 2026
Merged

hsingh-aai merged 2 commits into
mainfrom
stage-1-basics

Conversation

@hsingh-aai

Copy link
Copy Markdown
Collaborator

Summary

Stage 1 of the MCP roadmap: what the Anthropic and OpenAI directories check for, plus basic repo hygiene. No change to how /mcp behaves for clients.

Tool annotations

Every tool now has a title and annotations, which both directories require (the Anthropic portal flags tools without readOnlyHint/destructiveHint):

Tool readOnly destructive idempotent openWorld
submit_transcript false false false true (AssemblyAI fetches the URL)
get_transcript true false
summarize_transcript true false
understand_transcript true false
delete_transcript false true true false

Homepage at /

A short page for people who open the server in a browser (it was a 404): what it is, the endpoint, a Claude Code setup command built from the request host, and the five tools. AI apps keep using /mcp.

Log scrubbing

logError now strips URLs and long opaque tokens from error messages and stacks before logging. Upstream API error text is logged verbatim and can echo request values, so this keeps audio links, webhook targets and key-like strings out of Vercel logs. Transcript IDs are logged in their own field and are unaffected.

License + CI

  • MIT LICENSE, matching the AssemblyAI Node/Python SDKs and CLI.
  • GitHub Actions on every PR and push to main: npm ci, typecheck, offline smoke tests, next build. Once this merges, main can require this check (branch protection).

Test plan

  • npm run typecheck clean
  • npm test: 101/101, including new test 43 (annotations: titles, delete destructive, reads read-only) and test 44 (log scrubbing)
  • npm run build produces /, /mcp, /.well-known/oauth-protected-resource
  • Local run: / renders the page, /mcp still returns 401 without a key
  • CI run on this PR
  • After merge: production / shows the page, /mcp unchanged, live tests 22/22

🤖 Generated with Claude Code

- Tool annotations on all five tools (title + readOnlyHint/destructiveHint,
  idempotentHint, openWorldHint), required by the Anthropic and OpenAI
  directories. delete_transcript is destructive; get/summarize/understand are
  read-only; submit_transcript is open-world (AssemblyAI fetches the URL).
- A short page at / for people who open the server in a browser: endpoint,
  Claude Code setup command (built from the request host), and the tools.
  AI apps keep using /mcp; nothing there changes.
- logError scrubs URLs and long opaque tokens from error messages and stacks,
  so upstream error text can't carry customer values into logs.
- MIT LICENSE, matching the other AssemblyAI SDK repos.
- GitHub Actions CI on every PR and push to main: npm ci, typecheck, offline
  smoke tests, next build.
- Smoke tests 43 (annotations) and 44 (log scrubbing): 101/101 passing.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@vercel

vercel Bot commented Oct 20, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
assemblyai-mcp Ready Ready Preview Oct 20, 2026 12:26am UTC

Request Review

The scheme check used startsWith("localhost"), so a host like
localhost.example.com was shown as http://. Match the hostname exactly
(localhost or 127.0.0.1, any port).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@hsingh-aai
hsingh-aai requested a review from dlange-aai October 20, 2026 00:32
@hsingh-aai
hsingh-aai merged commit 8a3eadb into main Oct 26, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant