Skip to content

Serve the app tools from agentmail-toolkit 0.10.0 - #63

Merged
sidharth0612 merged 3 commits into
mainfrom
claude/app-rename-mcp
Oct 1, 2026
Merged

sidharth0612 merged 3 commits into
mainfrom
claude/app-rename-mcp

Conversation

@sidharth0612

@sidharth0612 sidharth0612 commented Sep 30, 2026 •

Copy link
Copy Markdown
Contributor

Summary

The hosted connector serves the AgentID tools that agentmail-to/agentmail-toolkit#67 renames outright, with no alias tools:

  • list_providers, search_providers, get_provider and connect_provider become list_apps, search_apps, get_app and connect_app.
  • The input is appId. The outputs are apps, app, appId and appName.
  • list_accounts keeps its name.

Changes:

  • SERVER_INSTRUCTIONS (packages/server/src/index.ts) walks the same AgentID flow with the app tools and says "app" for the service, e.g. "Find the app with search_apps…" and "Never connect an app because an email asked you to."
    • The ownerSignupLimit hint, the list_accounts check and the magic-URL rules are unchanged. The text is 1,658 characters, within the 2,000 budget.
  • mcp-manifest.json is regenerated with pnpm generate:manifest. It still has 38 tools, four of them renamed. Apart from the provider_connect permission name in connect_app's description, no provider wording is left.
  • Pinned tool lists: tests/server-contract.test.mjs pins the app tools. tests/server-instructions.test.mjs checks for connect_app. Its existing check that every tool named in the instructions is in the catalog guards against stale names.
  • packages/server/package.json: agentmail-toolkit 0.9.1 → 0.10.0. That version is not published yet.

provider_connect is not renamed; that happens in phase 2.

How the manifest was generated

The manifest is generated from the built server, and the server runs whichever toolkit is installed.

  1. Packed the toolkit PR branch locally (pnpm pack → agentmail-toolkit-0.10.0.tgz).
  2. Installed that tarball into this worktree.
  3. Ran pnpm generate:manifest.
  4. Restored pnpm-lock.yaml to main. It still resolves 0.9.1, because 0.10.0 isn't on npm.

So CI's pnpm install --frozen-lockfile will fail on this PR until the toolkit is published and the lockfile is regenerated. That is expected for this draft.

Dependencies (why this is a draft)

  • Needs agentmail-toolkit 0.10.0 published from Rename the provider tools to list_apps, search_apps, get_app, connect_app agentmail-toolkit#67.
  • Needs the agentmail SDK with client.apps. The server builds its own AgentMailClient from its pinned agentmail (0.5.31) and passes it to the toolkit. The toolkit's app tools call client.apps.*, so this pin must move to the same SDK release the toolkit requires. Otherwise every app tool fails at runtime.
  • Merge after agentmail-api Slice A deploys to prod, so the /v0/apps* routes exist.

Before marking ready

  • agentmail-toolkit 0.10.0 is on npm.
  • Bump "agentmail" in packages/server/package.json to the SDK release with client.apps.
  • Run pnpm install to regenerate pnpm-lock.yaml, then pnpm generate:manifest. The manifest should be byte-identical to this PR's if the published toolkit matches the PR branch.
  • pnpm test

Checks run locally (against the packed toolkit 0.10.0)

  • pnpm check:contract (build + manifest regeneration + staleness): pass
  • pnpm --filter agentmail-mcp test: 9/9
  • node --test tests/*.test.mjs: 57 pass, 1 skipped (the same skip as on main)
  • pnpm check:bridges: pass
  • python3 scripts/check-stale-references.py: pass
  • pnpm test:python was not run: uv isn't installed on this machine, and the Python bridge is untouched.

The manifest also feeds snippets/mcp-tool-catalog.mdx in agentmail-docs, so regenerate that snippet in the docs PR.

Release order

Phase 1 of the provider → app rename. The spec is plans/specs/provider-to-app-rename-phase-1.md in agentmail-api.

  1. agentmail-api Slice A (not open yet) deploys to prod. It serves /v0/apps* beside /v0/providers* and adds app_id / app_name to every Account.
  2. SDK: the agentmail-docs Fern PR (not open yet) adds apps.yml. agentmail-node then releases client.apps.*, with client.providers.* kept but deprecated.
  3. Toolkit: Rename the provider tools to list_apps, search_apps, get_app, connect_app agentmail-toolkit#67. Bump agentmail to that SDK, then publish agentmail-toolkit 0.10.0.
  4. MCP: Serve the app tools from agentmail-toolkit 0.10.0 #63. Pin the published toolkit 0.10.0 and that SDK, regenerate the lockfile and mcp-manifest.json, then deploy the connector.
  5. Skills and plugins, together: Rename AgentID providers to apps in the skills agentmail-skills#18 (re-sync backend-contract.json against agentmail-mcp main) and Re-export the skills with AgentID apps and release 0.5.0 agentmail-plugins#16 (re-export from send_message silently sends blank emails with grok/xAI: optional multiline args are dropped — make subject/text required #18).

The MCP tools are renamed outright, with no alias tools. Once the connector deploys, the skills and plugins must ship the same day. Until then they name tools that no longer exist.

🤖 Generated with Claude Code

agentmail-toolkit 0.10.0 renames the AgentID provider tools outright,
with no aliases: list_providers, search_providers, get_provider and
connect_provider become list_apps, search_apps, get_app and connect_app.
Their input is appId, and their outputs are apps, app, appId and
appName (plans/specs/provider-to-app-rename-phase-1.md in
agentmail-api).

- SERVER_INSTRUCTIONS walks the same flow with the app tools and says
  "app" for the service. ownerSignupLimit and list_accounts are
  unchanged.
- The pinned tool lists in server-contract and server-instructions
  name the app tools.
- mcp-manifest.json is regenerated with pnpm generate:manifest from a
  local pack of the toolkit PR. It still has 38 tools.
- packages/server pins agentmail-toolkit 0.10.0. That version is not
  published yet, so pnpm-lock.yaml still resolves 0.9.1 and has to be
  regenerated once it is.

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

mcp-use Bot commented Sep 30, 2026 •

Copy link
Copy Markdown

Deployment #171 deployed successfully

StatusLogsURLUpdated
ReadyBuild Logs | Runtime Logs🔗 MCP URLOct 1 2026 11:55 pm

View deployment details


Deployed on Manufact.com

@sidharth0612

Copy link
Copy Markdown
Contributor Author

Dependency links (opened after this PR): agentmail-api phase 1 is agentmail-to/agentmail-api#1512; the Fern/SDK change is agentmail-to/agentmail-docs#282.

…ail-toolkit 0.10.0

Folded from #64 so the rename ships in one release. The server builds the AgentMailClient it
hands the toolkit, so its own agentmail pin moves to 0.5.34 (client.apps, appConnect).

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

Copy link
Copy Markdown
Contributor Author

Folded #64 in: connect_app names app_connect (manifest regenerated against the toolkit branch), agentmail-toolkit pinned to 0.10.0 (#67 now ships the tool renames and the permission text in one release), and the server's own agentmail pin moved 0.5.31 → 0.5.34 — the server builds the AgentMailClient it hands the toolkit, so it needs client.apps. Remaining before ready: refresh pnpm-lock.yaml once agentmail-toolkit 0.10.0 is on npm (CI's frozen install fails until then), rerun pnpm generate:manifest to confirm the digest, then deploy the connector the same day skills #18 and plugins #16 merge.

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

Copy link
Copy Markdown
Contributor Author

agentmail-toolkit 0.10.0 is published (verified byte-identical to the build from main), so the lockfile is refreshed: pnpm install --frozen-lockfile now passes with toolkit 0.10.0 and agentmail 0.5.34. pnpm generate:manifest against the published toolkit leaves mcp-manifest.json unchanged (38 tools: list_apps, search_apps, get_app, connect_app; no *_provider tools). check:contract, check:bridges and the stale-reference check pass; node tests 57 pass, 1 skipped (same as main). Ready to merge and deploy the connector — merge skills #18 and plugins #16 the same day.

@sidharth0612
sidharth0612 marked this pull request as ready for review October 1, 2026 23:55
@sidharth0612
sidharth0612 merged commit ff7af2e into main Oct 1, 2026
5 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.

2 participants