Skip to main content

@manta-action-kit/mcp (Python)

Python port of the Manta Action Kit MCP server (packages/mcp) — exposes the Chrome extension's recorded API calls to an agent as MCP tools over stdio, bridged to the extension over a local WebSocket.

Scope vs the Node server

The Node server remains the reference implementation; the Python port covers the full agent tool surface except the script-driven HTTP proxy.

Capability Node (packages/mcp) Python (packages/mcp-py)
WS bridge + token handshake (hello/welcome/auth) ✅ ✅
owner/peer single-instance election + takeover ✅ ✅
recordings: list / get / flow / endpoints / call / set description ✅ ✅
actions: list / get / search / create / update / delete / execute ✅ ✅
proxy_fetch / proxy_sse (gateway entry, cookie injection) ✅ ✅
proxy rules: list / add / update (rules live extension-side) ✅ ✅
element captures: list / get / diff ✅ ✅
capture_screenshot / capture_element ✅ ✅
GIF tab recordings: start / stop / pause / resume / status / history ✅ ✅
health ✅ ✅
local HTTP proxy (script-driven entry) + rebind_proxy ✅ ❌ not here — run the Node server alongside; its proxy serves the shared rules

The wire protocol (frame types, RPC methods, HMAC handshake domain prefixes) is byte-identical with the Node/extension implementations — pinned by tests/test_auth.py (golden vectors generated from packages/mcp/src/auth.ts) and tests/test_cross_node_bridge.py (live handshakes against the real Node bridge: as extension-role client AND as peer).

Staying in sync with the Node server

The tool surface is contract-tested against the Node server: the fixture tests/fixtures/tool-contract.json is exported from the REAL Node registration path and the Python suite fails on any drift in tool names, descriptions (byte-for-byte), input schemas, and _meta:

pnpm --filter @manta-action-kit/mcp build && \
pnpm --filter @manta-action-kit/mcp contract:export   # regenerate the fixture
uv run pytest tests/test_tool_contract.py tests/test_node_parity.py

tests/test_node_parity.py additionally pins the lockstep version number, the protocol's default ports, and the RPC method set. Workflow for Node-side tool changes is documented in CONTRIBUTING.md.

Install / run

uvx manta-action-kit-mcp        # once published to PyPI
# or from a checkout:
uv sync && uv run manta-action-kit-mcp

MCP client config (Claude Code / Cursor etc.):

{
  "mcpServers": {
    "manta-action-kit": {
      "command": "uvx",
      "args": ["manta-action-kit-mcp"],
      "env": {
        "MANTA_TOKEN": "<token from the extension's install prompt>",
        "MANTA_WS_PORT": "8787"
      }
    }
  }
}

Env:

  • MANTA_TOKEN — handshake secret shared with the extension (from its install prompt). Without it the bridge rejects every client (fail closed).
  • MANTA_WS_PORT — local bridge port (default 8787; must match the extension setting).
  • MANTA_LOG_LEVEL — DEBUG/INFO/... (default INFO).

Coexistence with the Node server

Only one process can own the bridge port; both implementations elect an owner and degrade to peers that forward through it, and they can mix freely (a Python peer can forward through a Node owner and vice versa). If you need the script-driven HTTP proxy (proxy rules for scripts), run the Node server — whichever process owns the port receives the extension's data.

Development

uv sync                                   # deps + venv
uv run pytest -q                          # unit + bridge integration tests
pnpm --filter @manta-action-kit/mcp build # enables the cross-language test
uv run pytest tests/test_cross_node_bridge.py -q

Metadata

Release files for manta-action-kit-mcp 0.5.4

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for manta-action-kit-mcp 0.5.4
File Size Uploaded
manta_action_kit_mcp-0.5.4.tar.gz 115.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for manta-action-kit-mcp 0.5.4
File Interpreter ABI Platform
manta_action_kit_mcp-0.5.4-py3-none-any.whl Python 3 none any Details

Total release size: 145.9 kB

Release files / manta_action_kit_mcp-0.5.4.tar.gz

Download URL manta_action_kit_mcp-0.5.4.tar.gz
Size 115.2 kB
Tags Source
SHA-256 checksum
How to use checksums
b9bf72259bf9ff8dff6aa14ff15a791ccb7538af42306837177340143638c9ab
BLAKE2b-256 checksum
How to use checksums
4377514fb42149b0c7f351c4993b521abae93f49ab5dda362ca2f1749dd8ead1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.13.0 {"installer":{"name":"uv","version":"0.13.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / manta_action_kit_mcp-0.5.4-py3-none-any.whl

Download URL manta_action_kit_mcp-0.5.4-py3-none-any.whl
Size 30.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
c3705eeef054dbf1b51bdf32a313e04b04c7b60d9a95bed3b06f3d0cf3a5b206
BLAKE2b-256 checksum
How to use checksums
6065828becd3800108d902a43213d3f56d77e1dcbf49ec1e2b148f1ee87cbdee
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.13.0 {"installer":{"name":"uv","version":"0.13.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release history Release notifications | RSS feed

This release

0.5.4 This release

2 release files

0.5.2

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page