Skip to main content
Glama

MCP Logic

A self-contained MCP server for first-order logic reasoning, implemented in TypeScript with no external binary dependencies.

Original: https://github.com/angrysky56/mcp-logic/


Feature Status

βœ… = Implemented | πŸ”² = Planned | πŸ”¬ = Research/Vision

Core Reasoning

  • Theorem Proving β€” Resolution-based proving via Tau-Prolog

  • Model Finding β€” Finite model enumeration (domain ≀25 with SAT)

  • Counterexample Detection β€” Find models refuting conclusions

  • Syntax Validation β€” Pre-validate formulas with detailed errors

  • CNF Clausification β€” Transform FOL to Conjunctive Normal Form

  • Tseitin Transformation β€” Linear-size CNF conversion for SAT (avoids exponential blowup)

  • DIMACS Export β€” Export CNF for external SAT solvers

  • Symmetry Breaking β€” Lex-leader for model search (reduces search space exponentially)

  • SAT-Backed Model Finding β€” Scale to domain 25+ with automatic SAT threshold

  • Isomorphism Filtering β€” Skip equivalent models (deferred until "findAllModels" use case)

  • Proof Traces β€” Step-by-step derivation output (via include_trace)

Engine Federation

  • Multi-Engine Architecture β€” Automatic engine selection

  • Prolog Engine (Tau-Prolog) β€” Horn clauses, Datalog, equality

  • SAT Engine (MiniSat) β€” General FOL, non-Horn formulas

  • SMT Engine (Z3) β€” High-performance SMT solver with arithmetic & quantifiers

  • ASP Engine (Clingo) β€” Answer Set Programming (Constraints & Models)

  • Engine Parameter β€” Explicit engine selection via engine param

  • Iterative Deepening β€” Progressive inference limit strategy for complex proofs

  • Resource Management β€” Automatic cleanup of WASM resources (Z3 contexts)

  • Prover9 WASM β€” Optional high-power ATP (deferred until SAT+iterative proves insufficient)

  • Demodulation β€” Equational term rewriting (deferred until equality workloads show perf issues)

Logic Features

  • Arithmetic Support β€” Built-in: lt, gt, plus, minus, times, divides

  • Equality Reasoning β€” Reflexivity, symmetry, transitivity, congruence

  • Rewriting System β€” Knuth-Bendix style term rewriting for efficient equality handling (Prolog)

  • Extended Axiom Library β€” Ring, field, lattice, equivalence relation axioms

  • Function Interpretation β€” Full function support in model finding

  • Typed/Sorted FOL β€” Domain-constraining type annotations (research)

  • Modal Logic β€” Necessity, possibility operators (research)

  • Probabilistic Logic β€” Weighted facts, Bayesian inference (research)

MCP Protocol

  • Session-Based Reasoning β€” Incremental knowledge base construction with resource cleanup

  • Axiom Resources β€” Browsable libraries (category, Peano, ZFC, ring, lattice, etc.)

  • Reasoning Prompts β€” Templates for proof patterns

  • Verbosity Control β€” minimal/standard/detailed responses

  • Structured Errors β€” Machine-readable error codes and suggestions

  • Streaming Progress β€” Real-time progress notifications (via MCP notifications)

  • High-Power Mode β€” Extended limits with warning (via highPower option)

Advanced Engines

  • SMT (Z3 WASM) β€” Theory reasoning (arithmetic, arrays), Equality, Quantifiers.

  • ASP (Clingo) β€” Non-monotonic reasoning, defaults, preferences.

  • Neural-Guided β€” LLM-suggested proof paths with validation

  • Higher-Order Logic β€” Quantify over predicates (research)

Testing & Benchmarks

  • Unit Tests β€” 265+ tests passing, 80%+ coverage

  • Pelletier Problems β€” P1-P10 benchmark suite (extensible to P1-P75)

  • Symmetry Benchmarks β€” Bell number validation tests

  • SAT Model Tests β€” Group theory and algebraic structure verification

  • Resilience Tests β€” Resource leak detection and complexity limit verification

  • TPTP Library Subset β€” Standard ATP benchmarks


Quick Start

Installation

git clone <repository> cd mcplogic npm install npm run build

Running the Server

npm start

Verification

Run the comprehensive health check to verify build, tests, and engine availability:

npm run verify

Claude Desktop / MCP Client Configuration

Add to your MCP configuration:

{ "mcpServers": { "mcp-logic": { "command": "node", "args": ["/path/to/mcplogic/dist/index.js"] } } }

CLI Tools

The package includes a CLI for offline usage and verification:

# Check engine status mcplogic check # Prove a theorem from a file mcplogic prove problem.p # Find a model mcplogic model theory.p # Interactive REPL mcplogic repl

Available Tools

Core Reasoning Tools

Tool

Description

prove

Prove statements using resolution with engine selection

check-well-formed

Validate formula syntax with detailed errors

find-model

Find finite models satisfying premises

find-counterexample

Find counterexamples showing statements don't follow

verify-commutativity

Generate FOL for categorical diagram commutativity

get-category-axioms

Get axioms for category/functor/monoid/group

translate-text

Translate natural language to FOL (requires LLM)

Session Management Tools

Tool

Description

create-session

Create a new reasoning session with TTL

assert-premise

Add a formula to a session's knowledge base

query-session

Query the accumulated KB with a goal

retract-premise

Remove a specific premise from the KB

list-premises

List all premises in a session

clear-session

Clear all premises (keeps session alive)

delete-session

Delete a session entirely


Engine Selection

The prove tool supports automatic or explicit engine selection:

{ "name": "prove", "arguments": { "premises": ["foo | bar", "-foo"], "conclusion": "bar", "engine": "auto", "include_trace": true } }

The include_trace option (boolean) enables step-by-step derivation output in the response, useful for debugging or understanding the proof path.

Engine

Best For

Capabilities

prolog

Horn clauses, Datalog

Equality, arithmetic, efficient unification

sat

Propositional, Finite Domain

Boolean logic, CNF solving

z3

General FOL, SMT

Arithmetic, Quantifiers, Equality

clingo

Answer Set Programming

Constraints (Experimental)

auto

Default β€” selects based on formula

Analyzes clause structure & features

Engine Capabilities

Engine

Strength

Arithmetic

Quantifiers

Equality

Model Size

Z3

High (SMT)

βœ…

βœ…

βœ…

Large

Clingo

High (ASP)

βœ…

Limited

βœ…

Large

Prolog

Medium (Resolution)

βœ…

Limited (Horn)

βœ…

Small/Medium

SAT

Low (Propositional)

❌

❌

❌

Small


Formula Syntax

This server uses first-order logic (FOL) syntax compatible with Prover9:

Quantifiers

  • all x (...) β€” Universal quantification (βˆ€x)

  • exists x (...) β€” Existential quantification (βˆƒx)

Connectives

  • -> β€” Implication (β†’)

  • <-> β€” Biconditional (↔)

  • & β€” Conjunction (∧)

  • | β€” Disjunction (∨)

  • - β€” Negation (Β¬)

Examples

# All men are mortal, Socrates is a man all x (man(x) -> mortal(x)) man(socrates) # Transitivity of greater-than all x all y all z ((greater(x, y) & greater(y, z)) -> greater(x, z))

MCP Resources

Resource URI

Description

logic://axioms/category

Category theory axioms

logic://axioms/monoid

Monoid structure

logic://axioms/group

Group axioms

logic://axioms/ring

Ring structure

logic://axioms/lattice

Lattice structure

logic://axioms/equivalence

Equivalence relations

logic://axioms/peano

Peano arithmetic

logic://axioms/set-zfc

ZFC set theory basics

logic://axioms/propositional

Propositional tautologies

logic://templates/syllogism

Aristotelian syllogism patterns

logic://engines

Available reasoning engines (JSON)


Verbosity Control

All tools support a verbosity parameter:

Level

Description

Use Case

minimal

Just success/result

Token-efficient LLM chains

standard

+ message, bindings, engineUsed

Default balance

detailed

+ Prolog program, statistics

Debugging


Limitations (Current)

  1. Model Size β€” Finder limited to domains ≀25 elements (using SAT)

  2. Inference Depth β€” Complex proofs may exceed default limit (increase via inference_limit or use iterative strategy)

  3. Higher-Order β€” Only first-order logic supported

Future improvements may address these limitations as real-world usage dictates.


Development

npm run build # Compile TypeScript npm test # Run test suite npm run dev # Development mode with auto-reload

License

MIT


Future Directions

Potential enhancements will be driven by real-world usage:

  • Isomorphism Filtering β€” Skip equivalent models in exhaustive model enumeration

  • Proof Traces β€” Step-by-step derivation output for educational/debugging use cases

  • Demodulation β€” Equational term rewriting optimization for equality-heavy workloads

  • Streaming Progress β€” Real-time progress notifications for long-running operations

  • Extended Benchmarks β€” TPTP library subset and group theory problem suites

  • Advanced Engines β€” SMT (Z3), ASP (Clingo)

  • Evolution Engine β€” Genetic algorithm for evolving efficient proof strategies

  • Neural-Guided β€” LLM-suggested proof paths with validation

Troubleshooting

WASM Engines (Z3 / Clingo)

If you encounter errors related to z3-solver or clingo-wasm:

  1. Ensure your environment supports WebAssembly.

  2. In browser environments, ensure the .wasm files are served correctly. The check command can verify basic functionality in Node.js.

  3. If you see OOM or memory errors, try running with the default engine (Prolog) or increasing the timeout/inference limits.

build:browser Failures

Ensure you have run npm install to get the latest type definitions. The browser build relies on specific overrides for WASM modules that are handled in src/engines/*/index.ts.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/autonull/mcplogic'

If you have feedback or need assistance with the MCP directory API, please join our Discord server