Skip to main content

CLI and MCP server for the DKE-Forge deterministic code intelligence engine

Project description

dke-forge

Python CLI and MCP server for DKE-Forge — a deterministic, graph-native code intelligence engine.

This package is a thin HTTP client over the Forge API. The reasoning engine itself (graph construction, pattern learning, provenance tracking, impact analysis) runs server-side at dke-forge.com. Your code is ingested into a private graph; every query returns grounded, provenance-tagged answers — no LLM guessing.

Install

pip install dke-forge              # CLI only
pip install 'dke-forge[mcp]'       # CLI + MCP stdio server

Configure

Sign up at dke-forge.com to get an API key, then:

dke-forge config set api_key fga_your_key

Or set environment variables (overrides the config file):

export FORGE_URL=https://dke-forge.com
export FORGE_API_KEY=fga_your_key

The config file lives at ~/.config/dke-forge/config.json (chmod 600).

CLI

dke-forge health                          # server status
dke-forge graph stats                     # node/edge counts
dke-forge graph function main             # look up a function
dke-forge graph callers authenticate      # who calls authenticate?
dke-forge graph impact login              # what breaks if login changes?
dke-forge scan /path/to/repo              # ingest a repo (polls to completion)
dke-forge scan /path/to/repo --no-wait    # returns scan_id; poll separately
dke-forge scan-status <scan_id>           # check async scan progress

Run dke-forge --help for the full command tree.

MCP — Claude Code, VS Code, Cursor, any MCP client

Install with the [mcp] extra, then add this to your MCP client config.

Claude Code (.mcp.json at project root, or ~/.mcp.json for global):

{
  "mcpServers": {
    "forge": {
      "command": "dke-forge-mcp",
      "env": {
        "FORGE_URL": "https://dke-forge.com",
        "FORGE_API_KEY": "fga_your_key"
      }
    }
  }
}

Cursor / VS Code (via settings.json):

{
  "mcp.servers": {
    "forge": {
      "command": "dke-forge-mcp",
      "env": {
        "FORGE_URL": "https://dke-forge.com",
        "FORGE_API_KEY": "fga_your_key"
      }
    }
  }
}

The server advertises 56 tools over stdio. Your assistant will discover them automatically and invoke them when it needs structural facts about your code.

56 Tools, 13 Categories

Category Tools
Foundation forge_graph_stats
Graphs forge_list_graphs, forge_create_graph, forge_get_graph, forge_rename_graph, forge_delete_graph, forge_promote_default_graph
Navigation forge_query_function, forge_callers_of, forge_callees_of, forge_depends_on, forge_impact_analysis, forge_callgraph_reachable, forge_find_implementers
Architecture forge_dead_code, forge_subgraph, forge_circular_deps, forge_god_classes, forge_architecture_map, forge_api_surface, forge_abstractions, forge_module_topology
Change forge_refactor_preview, forge_breaking_change, forge_deprecation_path, forge_risky_change, forge_commit_impact, forge_review
Rules forge_rules, forge_check_rules
Provenance forge_contradictions, forge_last_modified, forge_provenance, forge_reasoning_trace
Patterns forge_patterns, forge_pattern_catalog, forge_pattern_detail, forge_learn_patterns
Generation-prep forge_envelope
Ingestion forge_declare
Reasoning forge_reason_chain, forge_audit_changes, forge_contradictions_hypothetical, forge_reach_from, forge_reach_cone, forge_use_def, forge_reaching_defs, forge_live_vars, forge_taint, forge_effects
Meta forge_health, forge_auth_verify
Invitations forge_invitation_resend, forge_invitation_preview

Ingestion covers 8 languages: C++, C, Python, TypeScript, Go, Rust, Java, JavaScript. Cross-language relationships resolve into a single graph by construction — a Python call into a C++ library surfaces as a first-class edge.

Full tool reference: dke-forge.com/mcp.html

What Makes Forge Different

Every MCP tool answer is provenance-tagged — you can ask where a claim came from. Queries are deterministic — same graph, same answer. Contradictions in the graph are surfaced, not hidden. Pattern discovery has a lifecycle (proposed → supported → confirmed) with confidence propagation. This is the set of things a graph-native reasoning engine can do that LLM-plus-grep fundamentally cannot.

Requirements

  • Python 3.8+
  • A DKE-Forge account with an API key (sign up)

License

MIT. See LICENSE.

Links

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

dke_forge-0.21.0.tar.gz (55.6 kB view details)

Uploaded Source

Built Distribution

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

dke_forge-0.21.0-py3-none-any.whl (35.7 kB view details)

Uploaded Python 3

File details

Details for the file dke_forge-0.21.0.tar.gz.

File metadata

  • Download URL: dke_forge-0.21.0.tar.gz
  • Upload date:
  • Size: 55.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.2

File hashes

Hashes for dke_forge-0.21.0.tar.gz
Algorithm Hash digest
SHA256 12d97f16a3ae5c25eda1f4f9f826e51d38f77307bf5ce5de0e380c8817ad83e1
MD5 2a5d2ba10ce72f3a5c043e6696b48b25
BLAKE2b-256 f89c385c0fe74eda6e2cd6e41b36ce8d759aa0181aeca98c71a5f21049fdc6c0

See more details on using hashes here.

File details

Details for the file dke_forge-0.21.0-py3-none-any.whl.

File metadata

  • Download URL: dke_forge-0.21.0-py3-none-any.whl
  • Upload date:
  • Size: 35.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.2

File hashes

Hashes for dke_forge-0.21.0-py3-none-any.whl
Algorithm Hash digest
SHA256 a54de3e7b214754faf7796ef15c32166bca065de58285b97da7763880fd041d3
MD5 4ee70ba44276d872b3450e8a7bd3ef86
BLAKE2b-256 3b45a73276349c742ab895c045f5f31d0c8e27e50e8f3c3f13367e013fffffc3

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