Commit Graph

3 Commits

Author SHA1 Message Date
Josh Zhang 131a92e1d0 docs(integrations): refresh e2a page for the hosted-only MCP server (#2026)
* docs(integrations): refresh e2a page for the hosted-only MCP server

The e2a integration page has drifted from the service since it landed in
May. Corrections:

- Drop both Local MCP Server tabs. The `@e2a/mcp-server` npm package is
  retired and the current server has no stdio transport, so `npx -y
  @e2a/mcp-server` installs an abandoned build.
- Point the remote examples at `https://api.e2a.dev/mcp`, the endpoint
  published in the MCP Registry, instead of the older `mcp.e2a.dev`.
- Remove `E2A_AGENT_EMAIL`, which no longer exists; `whoami` takes no
  inputs and resolves identity from the credential.
- Remove the `E2A_BASE_URL` config table (renamed, and unused now that
  the page is hosted-only).
- Fix the held-send status: `pending_review`, not `pending_approval`.
- Drop the `agent_mode: local|cloud` guidance. There is no delivery mode
  to choose; inbound is available by polling or webhook subscription.
- Refresh the tool surface (~60 tools, was 18) and group it by credential
  scope, since an agent-scoped key sees only the runtime tools.
- Update repository links for the tokencanopy org rename.

* docs(integrations): recommend the e2a SDK for production ADK agents

The MCP toolset gives the model the inbox, which is the wrong layer for
the deterministic parts of a deployment: webhook signature verification,
at-least-once delivery handling, and idempotent sends. Add a section
recommending the SDK own that boundary, with the MCP toolset kept for
model-driven actions inside a turn, and point at the working example.

* docs(integrations): add WebSocket delivery and future-proof the tool count

Two corrections after checking the page against the running service:

- Receiving mail listed only polling and webhooks. WebSocket delivery via
  the SDK's listen() needs no public URL, which makes it the practical
  choice while developing an ADK agent or for a long-running agent that
  isn't a web service.
- The tool surface grows; state 60+ rather than a number that dates.

* docs(integrations): restructure e2a page to the integration template

Address review feedback. Drop the four added top-level sections ('For
production', 'Key scope', 'Receiving mail', 'Sending and review holds')
and fold only the load-bearing facts back into the template's existing
shape:

- Key scope becomes two sentences introducing Available tools, since an
  agent-scoped key genuinely cannot see the admin tools listed there.
- The SDK recommendation becomes a short tip after the code sample,
  keeping the inline links.
- Delivery options and OAuth become one sentence each in Configuration.
- accepted/pending_review moves into the send_message table row.

Additional resources trimmed to four: dropped the MCP Registry link (a
raw JSON API) and the two SDK links, which remain linked inline.

Page is now intro / use cases / prerequisites / one sample / tools /
configuration / resources, 186 lines.

---------

Co-authored-by: Kristopher Overholt <koverholt@google.com>
2026-07-28 17:48:35 -05:00
Josh Zhang 7d0a76a8b8 Update e2a integration page with remote MCP server and 7 tools (#1793)
* docs(integrations): refresh e2a — hosted endpoint + 7 missing tools

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.

* fix: import McpToolset from deep path (google-adk 2.0 compat)

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.

* Revert McpToolset import to standard path

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.

* Rename tab to Remote MCP server for consistency with all other integration pages

* Remove link to raw MCP endpoint

* Match API key variable / format with all other integration pages

* Formatting and consistency edits

---------

Co-authored-by: Kristopher Overholt <koverholt@google.com>
2026-05-22 16:07:19 -05:00
Josh Zhang 52eb1405cf Add e2a integration (#1766)
* Add e2a integration

e2a is an authenticated email gateway for AI agents — SPF/DKIM-verified
inbound, optional human-in-the-loop approval before outbound mail
ships. Distributed as an MCP stdio server via npx -y @e2a/mcp-server,
exposing 11 tools for inbox management, threaded replies, and HITL
approval flows.

Source: https://github.com/Mnexa-AI/e2a/tree/main/mcp
npm:    https://www.npmjs.com/package/@e2a/mcp-server

* docs(e2a): shorten catalog_description per review feedback
2026-05-18 18:28:39 -05:00