Skip to main content
Glama

FluxForge_MCP

The installable MCP server for FluxForge — a fail-closed Model Context Protocol server that fuses literature, regulatory/PPI networks, and genome-scale metabolic models to predict CRISPR gene dependencies and drug targets. 18 typed tools.

This is a lightweight distribution repo (server + ~1.5 MB runtime data only) so it clones and installs fast. The full research code — the benchmark engine, datasets, figures, and paper materials — lives in the main repo: https://github.com/ali-kishk/FluxForge.

Install

1. Install the package (pulls all Python dependencies — cobra, pandas, networkx, httpx, pydantic, mcp — and ships the ~1.5 MB runtime data bundled inside the wheel):

pip install fluxforge-mcp

Solver is GLPK (bundled with cobra; no CPLEX/MATLAB needed).

2a. Claude Code — plugin marketplace (simplest; runs python -m mcp_server.server, no PYTHONPATH or data-dir env vars needed once the package is installed):

/plugin marketplace add ali-kishk/FluxForge_MCP
/plugin install fluxforge@fluxforge

2b. Claude Code — direct:

claude mcp add fluxforge -- python -m mcp_server.server

2c. Claude Desktop — config (claude_desktop_config.json → mcpServers):

{
  "mcpServers": {
    "fluxforge": {
      "command": "python",
      "args": ["-m", "mcp_server.server"]
    }
  }
}

Use the full path to your interpreter (e.g. .../python.exe) if python isn't on the client's PATH, or if you installed fluxforge-mcp into a specific virtualenv.

Only literature.extract_claim needs an LLM backend (configure MCP_LLM_*); the other 17 tools run with no LLM.

Related MCP server: GenomeMCP

Verify

Ask the client to "list your fluxforge tools" → you should get 18, starting with session.init_artifacts. Or offline:

python -m mcp_server.server --selftest    # -> registered tools: 18

Data & output locations

The runtime data (Recon3D model, PPI table, regulatory map, CRISPR benchmark, comparators) ships inside the installed package and is found automatically — no configuration needed. Outputs (session dumps, viewers, negative-result reports) are written to ~/.fluxforge/outputs by default. Override either with MCP_INPUT_DIR / MCP_OUTPUT_DIR if you need a different location.

License & citation

Apache-2.0 (see LICENSE / NOTICE) — © 2026 Ali Kishk. Cite via CITATION.cff. For the benchmark methodology and results, cite the main FluxForge repo / preprint.

Available Tools

18 tools
boolean.augment_compareC

Add LLM edges, re-simulate, and gate llm_adds_value vs no_added_value; also returns a continuous attractor_distance + permuted_edge_null_fraction.

Inputs: llm_edges (required), session_id (required), baseline_signature (required), permuted_null.

boolean.build_and_testC

Compile the subgraph to Boolean rules and find baseline attractors.

Inputs: session_id (required), subgraph_edges (required), subgraph_nodes (required).

integration.convergence_checkB

Deterministic stopping rule for iterative edge integration: given the per-round augment_compare scores, decide continue | converged | noise_indistinguishable | budget_exhausted (a fail-closed hard stop).

Inputs: rounds (required), session_id (required), min_gain, patience, +2 more.

literature.compile_constraintsA

Compile literature.extract_claim's (source,target,sign) triples into the InteractionConstraint list metabolic.simulate/couple_and_test consume. Deterministic server-side policy (not agent judgement): prefer the literal target when it resolves into the model gene universe (role_used=target); else fall back to the source as a confidence-penalized proxy (role_used=source_proxy); else drop the claim (role_used counts + drop reasons returned). Each compiled constraint carries resolution_confidence so a fuzzy alias-tier resolution is visibly weaker evidence than an exact model-id hit.

Inputs: claims (required), session_id (required), min_confidence, default_scale_activating, +2 more.

literature.extract_claimA

High-throughput LLM extraction of span-grounded {source,target,sign,tier,section,disease_specificity,phenotype_relevance} claims with provenance+confidence. Optional disease_context + phenotype_keywords (both fall back to the session) disambiguate references and rank on-phenotype claims — soft signals, never filters.

Inputs: documents (required), session_id (required), disease_context, target_entities, +1 more.

metabolic.couple_and_testD

Couple validated nodes as soft flux constraints; gate on provenance-independent comparator agreement.

Inputs: session_id (required), compilation_rules (required), external_comparators (required), validated_output_nodes (required), +1 more.

metabolic.id_mapA

Reconcile identifiers to canonical ids so the pipeline never relies on the LLM guessing an accession. Metabolites/reactions -> MetaNetX MNXref (BiGG/KEGG/ChEBI/HMDB/... -> MNXM*/MNXR* + xrefs); genes -> the model's Entrez id space via the gene table + symbol map + MyGene (MNXref does NOT map genes). Every mapping carries {authority, confidence, matched_by}: exact id matches are high-confidence, fuzzy name hits low.

Inputs: session_id (required), genes, reactions, use_mygene, +1 more.

metabolic.neighbourhood_extractC

Extract a localized metabolic subnetwork, never routing through currency metabolites.

Inputs: session_id (required), anchor_reactions (required), currency_exclusion_list (required), max_hops.

metabolic.salvage_redundancy_checkC

Fail-closed positive-control gate: is the GEM structurally capable of detecting a known dependency?

Inputs: session_id (required), target_objective (required), positive_control_genes (required).

metabolic.simulateA

Run FBA/pFBA/FVA/MOMA on the (optionally PPI-integrated) model. interaction_constraints=[{reaction_or_gene,effect,scale}] apply soft signed capacity constraints (reversible viral-sequestration encoding, no gene deletion). Returns objective value + top fluxes (FBA/pFBA/MOMA) or per-reaction ranges (FVA).

Inputs: session_id (required), method, objective, top_n_fluxes, +3 more.

namespace.reconcileA

Build a symbol<->entrez crosswalk between PPI hits and model genes. Symbols without a table entrez (or absent from the model) are resolved via the id-map resolver (model gene table + symbol map + MyGene); each entry carries authority/confidence/matched_by provenance.

Inputs: session_id (required), resolve_unmapped.

pipeline.run_dagA

Run the full fail-closed DAG for a session; returns negative_result_report or target_handoff. Set iterative_integration=True to have the SERVER run the edge-integration loop (batched admission, self-stopping via integration.convergence_check) instead of a single-shot augment; integration_params={edge_batch_size,min_gain,null_alpha,patience,max_rounds}. default_visualization=True (default) renders the extracted regulatory subnetwork to OUTPUT_DIR as a standard output of every run.

Inputs: documents (required), ppi_edges (required), seed_nodes (required), session_id (required), +10 more.

ppi.classify_interactorB

Boltz-2 structural gate: classify a bait/prey pair physical/regulatory/context_only from ipTM + flux relevance.

Inputs: bait (required), prey (required), session_id (required), iptm, +2 more.

regmap.subgraph_extractC

Extract the signed regulatory subgraph around seed nodes (representative disease-map module).

Inputs: seed_nodes (required), session_id (required), max_hops, resolved_edges.

session.init_artifactsA

Load canonical inputs (GEM, PPI, regmap, CRISPR, comparators) with provenance tags into a new session. Optional disease_context and phenotype_keywords set the session's disease + phenotype-of-interest for downstream tools.

Inputs: data_dir, session_id, disease_context, phenotype_keywords.

viz.render_metabolic_mapA

DEFAULT metabolic visualizer: overlay compiled constraints on an Escher curated pathway map (biochemically-correct layout); automatically falls back to the cytoscape subnetwork renderer when no curated map covers the model. Returns {backend, out_path, n_reactions_on_map, map_used, fallback_reason}.

Inputs: model (required), constraints (required), title, prefer, +2 more.

viz.render_ppi_metabolicC

Render the 3-layer viral->enzyme->reaction interactive HTML with ipTM tiers and flux overlay.

Inputs: ppi_edges (required), out_path, gpr_edges, session_id.

viz.render_subnetworkC

Render an interactive HTML of the regulatory subnetwork with LLM-added edges highlighted.

Inputs: llm_edges (required), subgraph_edges (required), subgraph_nodes (required), out_path, +2 more.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    B3.2/5.0

    Scored across 18 tools

    Disambiguation5/5

    Tools are clearly grouped by domain (boolean, literature, metabolic, etc.) with distinct purposes. Each tool has a unique role and no overlapping functionality is evident.

    Naming Consistency5/5

    All tools follow a consistent domain.tool_name snake_case naming convention, with verb_noun or verb_verb patterns that are predictable and readable.

    Tool Count5/5

    18 tools is appropriate for the complex multi-domain pipeline covering Boolean networks, literature, metabolic modeling, PPI, and visualization. Each tool earns its place.

    Completeness5/5

    The tool set covers the full pipeline from session initialization through literature extraction, constraint compilation, modeling, integration, and visualization, with crucial operations like identifier mapping and convergence checks.

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      B
      maintenance
      A unified biomedical graph database that integrates 50+ primary data sources — genes, proteins, compounds, diseases, pathways, and clinical data — into a single queryable graph with billions of cross-reference edges. Its native MCP server gives LLMs direct access to structured, authoritative biomedical data, complementing their reasoning with reliable identifiers and up-to-date database content.
      20
      AGPL 3.0
    • A
      license
      Not graded
      quality
      D
      maintenance
      Enables AI agents to query clinical genomics databases, retrieve supporting literature, analyze population genetics, and visualize biological pathways.
      18
      MIT
    • A
      license
      A
      quality
      B
      maintenance
      Integrates AlphaFold DB and eight other biomedical data sources into MCP tools for variant clinical reporting, disease-target analysis, structural intelligence, and drug repurposing, with results persisted to a local SQLite knowledge graph.
      29
      413 PyPI
      5
      Apache 2.0
    • A
      license
      Not graded
      quality
      D
      maintenance
      Enables LLMs to directly access and analyze cancer dependency data from the DepMap, including gene search, dependency summaries, and top cell line dependencies, for therapeutic target evidence collection.
      1
      MIT