Skip to main content

eon-mcp-local

Local stdio MCP server for the Eon platform.

Lets MCP clients (Claude Code, Cursor, Codex, Devin, scripts in CI) call Eon REST APIs over a non-interactive client_credentials OAuth flow. Unlike the remote https://mcp.eon.io server (which uses an interactive browser-based OAuth flow), this CLI is suitable for machines and pipelines.

Install

First install uv via your preferred method — Homebrew, pipx, your OS package manager, or Astral's install script (see Astral's docs for checksum-verified options).

Then pick one:

# zero-install (uvx fetches on first run, caches for next time) — recommended
uvx eon-mcp-local serve

# persistent install
uv tool install eon-mcp-local

# or pipx if you prefer
pipx install eon-mcp-local

Configure

Create API credentials in the Eon console (Settings → API Credentials), then set:

export EON_CLIENT_ID=...
export EON_CLIENT_SECRET=...
export EON_ACCOUNT_DOMAIN=acme        # the 'acme' in 'acme.console.eon.io'

Wire into Claude Code

claude mcp add eon -- uvx eon-mcp-local serve

Equivalent for Cursor / Codex / Devin: add a stdio MCP server with command uvx eon-mcp-local serve and the env vars above.

Using from an agent framework

See examples/adk_example.py for a runnable Google ADK agent that spawns eon-mcp-local as a stdio subprocess and exposes its tools to Gemini. The same pattern (spawn a subprocess, speak MCP over stdin/stdout) works with any MCP-aware framework.

Environment variables

Variable Required Description
EON_CLIENT_ID yes OAuth client_id from POST /api/customer/v1/api-credentials
EON_CLIENT_SECRET yes OAuth client_secret from the same endpoint
EON_ACCOUNT_DOMAIN yes Your tenant subdomain (the acme in acme.console.eon.io)
EON_LOG_LEVEL no DEBUG / INFO / WARNING / ERROR (default INFO)
EON_JSON_LOGGING no true to emit JSON logs to stderr

Troubleshooting

  • error: missing required environment variables — set the three required env vars before invoking serve.
  • HTTP 401 on every call — verify the client_id/client_secret are active in the Eon console and were issued for the same tenant as EON_ACCOUNT_DOMAIN.
  • DNS error / connection refused — EON_ACCOUNT_DOMAIN must be the bare subdomain, not a full URL.
  • Garbled output — logs go to stderr by design; if you see them mixed with stdout, your MCP client is merging streams. Filter or capture stderr separately.

Reporting security issues

Please report suspected security issues privately to security@eon.io rather than in a public channel.

License

Apache License 2.0 — see LICENSE.

Metadata

Release files for eon-mcp-local 0.1.0

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

Source distribution (sdist)

Source distribution for eon-mcp-local 0.1.0
File Size Uploaded Provenance Actions
eon_mcp_local-0.1.0.tar.gz 99.0 kB Without provenance Details for eon_mcp_local-0.1.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for eon-mcp-local 0.1.0
File Interpreter ABI Platform Actions
eon_mcp_local-0.1.0-py3-none-any.whl Python 3 none any Details for eon_mcp_local-0.1.0-py3-none-any.whl

Total release size: 201.1 kB

Release files / eon_mcp_local-0.1.0.tar.gz

Download URL eon_mcp_local-0.1.0.tar.gz
Size 99.0 kB
Tags Source
SHA-256 checksum
How to use checksums
95b7976841780f5a3f99e2b5b139028fab01fafd9e3d6b1d9f23abe44947034b
BLAKE2b-256 checksum
How to use checksums
6038ef72150cb9229907597771dd4cfe617578a2328ec73dc46b59a854012053
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.11.1 {"installer":{"name":"uv","version":"0.11.1","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"12","id":"bookworm","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / eon_mcp_local-0.1.0-py3-none-any.whl

Download URL eon_mcp_local-0.1.0-py3-none-any.whl
Size 102.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
9d53d1de710bd63b827cbc763773ab584c6f10b3c99a2592b5b7499c0e3e5c5d
BLAKE2b-256 checksum
How to use checksums
379312e03bcfa19c6630ab80d2ba4b1d0c0271252d9633f272ad35d1d587d49a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.11.1 {"installer":{"name":"uv","version":"0.11.1","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"12","id":"bookworm","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Security for eon-mcp-local 0.1.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files No provenance

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