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 59 tools over stdio. Your assistant will discover them automatically and invoke them when it needs structural facts about your code.

59 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.23.0.tar.gz (58.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.23.0-py3-none-any.whl (37.6 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: dke_forge-0.23.0.tar.gz
  • Upload date:
  • Size: 58.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.23.0.tar.gz
Algorithm Hash digest
SHA256 972be8c647c3801ab2db52746d9b437db63fa24d51bd8876d03b7efd8095957e
MD5 5d573b75f06bf604d4f11d9dbe1f332d
BLAKE2b-256 215f2ee98508477cc1263ec067147d5c387f1024662c8b4e87abbf78d95b8f54

See more details on using hashes here.

File details

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

File metadata

  • Download URL: dke_forge-0.23.0-py3-none-any.whl
  • Upload date:
  • Size: 37.6 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.23.0-py3-none-any.whl
Algorithm Hash digest
SHA256 1ae199149e9288b492722afeffbf67360d677a661c0ad8e334a9606e79038a25
MD5 d4bcf801b3bcde0cfe7b40c7ef897491
BLAKE2b-256 88944f4ebbb46a4b787aaacaffa9c679291670e300ff16502670dd81297a6b4e

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