Skip to main content

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.

Metadata

Release files for crossfire-mcp 0.1.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 crossfire-mcp 0.1.4
File Size Uploaded Provenance Actions
crossfire_mcp-0.1.4.tar.gz 262.4 kB Without provenance Details for crossfire_mcp-0.1.4.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for crossfire-mcp 0.1.4
File Interpreter ABI Platform Actions
crossfire_mcp-0.1.4-py3-none-any.whl Python 3 none any Details for crossfire_mcp-0.1.4-py3-none-any.whl

Total release size: 544.5 kB

Release files / crossfire_mcp-0.1.4.tar.gz

Download URL crossfire_mcp-0.1.4.tar.gz
Size 262.4 kB
Tags Source
SHA-256 checksum
How to use checksums
c5fba8bfb2bc2f4d03d79de198b56e62007c03baac9885554b20388823884888
BLAKE2b-256 checksum
How to use checksums
a1ca5766618ceae554df72b5ae874e08216f727c979deb1be9043178e8fbd681
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.10.12

Release files / crossfire_mcp-0.1.4-py3-none-any.whl

Download URL crossfire_mcp-0.1.4-py3-none-any.whl
Size 282.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
1ca53edba3ec5507e2d08413fcf510bfd5ea430e032dc46ec6d46a423e22f0be
BLAKE2b-256 checksum
How to use checksums
7bf38fe195c2f43ec70f661fe7a48146d128633fd98d8576b83bb287851cc374
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.10.12

Security for crossfire-mcp 0.1.4

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.4 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