Skip to main content

MCP & A2A security proxy with real-time threat detection

Project description

Crossfire

Transparent MCP and A2A proxy with real-time threat detection and a local dashboard.

Repository: github.com/Yugandhar-G/crossfire

Requirements

  • Python 3.10+
  • Node 18+ (only to build the dashboard UI from this repo)

Install

python3 -m venv .venv
source .venv/bin/activate   # Windows: .venv\Scripts\activate
pip install -e .

Optional Gemini-assisted analysis:

pip install -e ".[gemini]"

Build the dashboard once so the server can serve the full UI (default http://localhost:9999):

cd dashboard && npm ci && npm run build && cd ..

pip install crossfire-mcp (PyPI)

The published wheel installs only the runtime:

Shipped Purpose
proxy/ MCP/A2A proxy, CLI, detectors, installer
server/ Dashboard API (FastAPI) + bundled web_dist/ UI when you build before release
shared/ Event schema (Python)

Console scripts: crossfire, crossfire-proxy.

Not included in the wheel or PyPI sdist: tests/, demo/, dashboard/ source, or other repo-only files. (Runtime Python remains readable in site-packages, like any interpreter package.)

Usage

crossfire install      # rewrite MCP configs to route through the proxy
crossfire dashboard    # API + static UI

Open http://localhost:9999. Smoke-test without MCP: crossfire ping (add --threat for a sample critical event).

Diagnostics: crossfire doctor.

Configuration

  • crossfire.yaml or .crossfire.yaml in the project (see repo root for an example).
  • CROSSFIRE_CONFIG — absolute path to config when the MCP process cwd is not the repo.
  • CROSSFIRE_DASHBOARD_URL — dashboard base URL if not on localhost:9999.
  • GOOGLE_API_KEY or CROSSFIRE_GEMINI_KEY — optional; requires the gemini extra.

The stdio proxy applies to MCP servers launched with a command in config. URL-only MCP entries are not proxied.

npm / npx

The npm package is a thin wrapper: postinstall runs pip / pipx to install crossfire-mcp from PyPI (Python 3.10+ on PATH). In a git clone, postinstall uses pip install -e . when pyproject.toml is present.

There is no npx install … — use one of:

npm install -g crossfire-mcp
crossfire doctor
npx --yes crossfire-mcp@latest -- doctor
npx --yes crossfire-mcp@latest -- dashboard

If postinstall warns or the crossfire command is missing, run pip install crossfire-mcp or pipx install crossfire-mcp, then ensure ~/.local/bin (pip --user) or your pipx bin directory is on PATH. The npm shim also falls back to python3 -m proxy … when the package is installed but the crossfire script is not on PATH (common with conda or npx PATH ordering).

Releases: publish the crossfire-mcp wheel to PyPI (python -m build, twine upload dist/*) and keep package.json / pyproject.toml versions in sync with npm publish.

License

MIT — see LICENSE.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

crossfire_mcp-0.1.4.tar.gz (262.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

crossfire_mcp-0.1.4-py3-none-any.whl (282.1 kB view details)

Uploaded Python 3

File details

Details for the file crossfire_mcp-0.1.4.tar.gz.

File metadata

  • Download URL: crossfire_mcp-0.1.4.tar.gz
  • Upload date:
  • Size: 262.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.12

File hashes

Hashes for crossfire_mcp-0.1.4.tar.gz
Algorithm Hash digest
SHA256 c5fba8bfb2bc2f4d03d79de198b56e62007c03baac9885554b20388823884888
MD5 0428b00785b39b83b5c1fc0f9763734d
BLAKE2b-256 a1ca5766618ceae554df72b5ae874e08216f727c979deb1be9043178e8fbd681

See more details on using hashes here.

File details

Details for the file crossfire_mcp-0.1.4-py3-none-any.whl.

File metadata

  • Download URL: crossfire_mcp-0.1.4-py3-none-any.whl
  • Upload date:
  • Size: 282.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.12

File hashes

Hashes for crossfire_mcp-0.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 1ca53edba3ec5507e2d08413fcf510bfd5ea430e032dc46ec6d46a423e22f0be
MD5 aeddd721d222e1dfc77d958e2a4925df
BLAKE2b-256 7bf38fe195c2f43ec70f661fe7a48146d128633fd98d8576b83bb287851cc374

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page