Update e2a integration page with remote MCP server and 7 tools#1793
Conversation
✅ Deploy Preview for adk-docs-preview ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
|
Thanks for your pull request! It looks like this may be your first contribution to a Google open source project. Before we can look at your pull request, you'll need to sign a Contributor License Agreement (CLA). View this failed invocation of the CLA check for more information. For the most up to date status, view the checks section at the bottom of the pull request. |
The e2a integration page has drifted from what the e2a MCP server actually ships. Two gaps this PR closes: 1. **Hosted endpoint not documented.** e2a runs a hosted Streamable HTTP MCP at https://mcp.e2a.dev/mcp that accepts an API key in the Authorization header. The page currently only shows the stdio path (npx -y @e2a/mcp-server), which doesn't work for ADK agents deployed to Cloud Run since Cloud Run can't host stdio MCP child processes. Adds a "Hosted MCP Server" tab to both the Python and TypeScript code examples using StreamableHTTPConnectionParams. 2. **7 tools missing from the table.** The MCP server now registers 18 tools but the page lists 11. Adds: Identity: update_agent, delete_agent Messages: get_attachment_data Domains: list_domains, register_domain, verify_domain, delete_domain (new section) Also clarifies a few descriptions: - `whoami` notes E2A_AGENT_EMAIL is only required for multi-agent accounts (the hosted endpoint auto-resolves the sole agent at session init). - `delete_agent` and `delete_domain` flag the `confirm: true` required arg. - `get_attachment_data` uses 0-based `attachment_index`, not an attachment ID. - `E2A_BASE_URL` clarifies the var has no effect when connecting to the public hosted endpoint. Cross-linked the cloud-mode webhook example (already shipped in the e2a repo, not previously referenced from this page) and the hosted endpoint URL under Additional resources. No frontmatter / catalog metadata changes — title, description, icon, and tags (`["mcp"]`) all unchanged.
f56224d to
7c2a5a0
Compare
google-adk 2.0 stopped re-exporting McpToolset from `google.adk.tools.mcp_tool`'s package __init__ — only the deep path `google.adk.tools.mcp_tool.mcp_toolset.McpToolset` still works. Caught when I actually ran the example against a fresh google-adk 2.0 install: ImportError: cannot import name 'McpToolset' from 'google.adk.tools.mcp_tool' ($VENV/site-packages/google/adk/tools/mcp_tool/__init__.py) Applies to both the stdio code block and the new hosted code block. StdioConnectionParams and StreamableHTTPConnectionParams already use deep paths and continue to work — only McpToolset was broken.
The claim that google-adk 2.0 stopped re-exporting McpToolset from google.adk.tools.mcp_tool is incorrect. The __init__.py at src/google/adk/tools/mcp_tool/__init__.py explicitly re-exports McpToolset (and MCPToolset) via `from .mcp_toolset import McpToolset`. It has done so in every release, including v2.0.0.
koverholt
left a comment
There was a problem hiding this comment.
Thanks for the updates to the integration page. I made some edits to fix the import paths to match repo conventions, renamed tabs from "Hosted" to "Remote", replaced placeholder patterns to be consistent with other integration pages, and trimmed verbose prerequisites/config/admonition text. Content LGTM, merging.
Summary
The e2a integration page has drifted from what the e2a MCP server actually ships. Two concrete gaps:
Hosted MCP endpoint isn't documented. e2a runs a hosted Streamable HTTP MCP at
https://mcp.e2a.dev/mcpthat accepts an API key in theAuthorizationheader. The current page only shows the stdio path (npx -y @e2a/mcp-server), which doesn't work for ADK agents deployed to Cloud Run since Cloud Run doesn't host stdio MCP servers. This PR adds a "Hosted MCP Server" tab to both the Python and TypeScript code examples usingStreamableHTTPConnectionParams.7 tools are missing from the table. The e2a MCP server now registers 18 tools (verified against
mcp/tests/http.test.ts'slists every registered tool after initializetest). The current page lists 11. This PR adds:update_agent,delete_agentget_attachment_datalist_domains,register_domain,verify_domain,delete_domainMinor description fixes
whoami: notesE2A_AGENT_EMAILis only required when the account has more than one agent (the hosted endpoint auto-resolves the sole agent at session init).delete_agent/delete_domain: flag theconfirm: truerequired argument.get_attachment_data: corrected from "attachment id" to "0-based attachment index" (the actual schema field isattachment_index: z.number()).E2A_BASE_URL: clarified that the variable has no effect when connecting to the public hosted endpoint.What's not changing
catalog_title,catalog_description,catalog_icon,catalog_tags: ["mcp"]— all preserved verbatim.Verification
registerToolcalls acrossmcp/src/tools/agents.ts,messages.ts,domains.ts, andhitl.ts.transportOptions.requestInit.headers(matches the@google/adkStreamableHTTPConnectionParamstype definition; the top-levelheaderfield is deprecated).google.adk.tools.mcp_tool.mcp_session_manager.StreamableHTTPConnectionParams.curl https://mcp.e2a.dev/healthz→ 200,/.well-known/oauth-protected-resourcereturns valid metadata.