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 Controlminimal/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


Related MCP server: Congo River Compositional Intelligence

Quick Start

Installation

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

Running the Server

pnpm start

Verification

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

pnpm 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

pnpm run build     # Compile TypeScript
pnpm test          # Run test suite
pnpm 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 pnpm 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.

Available Tools

13 tools
assert-premiseA

Add a formula to a session's knowledge base.

When to use: Building up premises incrementally in a session.

Example: session_id: "abc-123..." formula: "all x (man(x) -> mortal(x))" → Adds the formula to the session KB

ParametersJSON Schema
NameRequiredDescriptionDefault
session_idYesSession ID from create-session
formulaYesFOL formula to add to the knowledge base
verbosityNoResponse verbosity: 'minimal' (token-efficient), 'standard' (default), 'detailed' (debug info)

TDQS

A4.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It states the tool adds a formula to a KB, implying a write operation, but doesn't disclose behavioral traits like error handling (e.g., invalid formulas), side effects, or response format. The example shows expected inputs but lacks output details. This is adequate but has clear gaps for a mutation tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core purpose, followed by a clear 'When to use' section and a concise example. Every sentence earns its place by adding value, with no redundant or verbose text. The structure is efficient and easy to parse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no annotations and no output schema, the description is moderately complete for a mutation tool. It covers the purpose and usage context well but lacks details on behavioral aspects like error conditions or response format. For a tool that modifies session state, more transparency would be beneficial, making it adequate but not fully comprehensive.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all parameters thoroughly. The description adds minimal value beyond the schema: it mentions 'session_id' and 'formula' in the example but doesn't provide additional semantics or usage nuances. This meets the baseline for high schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the specific action ('Add a formula') and target resource ('to a session's knowledge base'), distinguishing it from sibling tools like 'list-premises' (reads) and 'retract-premise' (removes). The verb 'Add' is precise and the scope is well-defined.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly includes a 'When to use' section that states 'Building up premises incrementally in a session,' providing clear context for when this tool should be used. This directly addresses the intended scenario without being misleading.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

check-well-formedA

Check if logical statements are well-formed with detailed syntax validation.

When to use: Before calling prove/find-model to catch syntax errors early. When NOT to use: You already know the formula syntax is correct.

Example: statements: ["all x (P(x) -> Q(x))"] → Returns: { valid: true, statements: [...] }

Common syntax issues:

  • Use lowercase for predicates/functions: man(x), not Man(x)

  • Quantifiers: "all x (...)" or "exists x (...)"

  • Operators: -> (implies), & (and), | (or), - (not), <-> (iff)

ParametersJSON Schema
NameRequiredDescriptionDefault
statementsYesLogical statements to check
verbosityNoResponse verbosity: 'minimal' (token-efficient), 'standard' (default), 'detailed' (debug info)

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden and does well by explaining the tool's behavior: it validates syntax, returns a structured result with validity status and processed statements, and lists common syntax issues. It doesn't cover all behavioral aspects like error handling or performance, but provides substantial context beyond basic purpose.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured and front-loaded with the core purpose, followed by usage guidelines, example, and common issues. Every sentence earns its place by providing actionable information without redundancy, making it efficient and easy to parse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no annotations and no output schema, the description does a good job covering the tool's context: it explains the validation purpose, usage scenarios, example output, and syntax rules. It could be more complete by detailing the output structure or error cases, but it's largely sufficient for a validation tool with clear parameters.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents both parameters thoroughly. The description doesn't add significant meaning beyond the schema—it mentions 'statements' in the example but doesn't elaborate on syntax rules beyond the common issues list, and doesn't discuss 'verbosity' at all. Baseline 3 is appropriate when schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the specific purpose: 'Check if logical statements are well-formed with detailed syntax validation.' This explicitly identifies the verb ('check'), resource ('logical statements'), and scope ('syntax validation'), distinguishing it from siblings like prove or find-model which perform different operations on statements.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit guidance with dedicated 'When to use' and 'When NOT to use' sections. It specifies to use this tool 'Before calling prove/find-model to catch syntax errors early' and avoid it when 'You already know the formula syntax is correct,' clearly differentiating it from alternative tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

clear-sessionA

Clear all premises from a session (keeps session alive).

When to use: Start fresh within the same session.

Example: session_id: "abc-123..." → Clears all premises, session remains valid

ParametersJSON Schema
NameRequiredDescriptionDefault
session_idYesSession ID from create-session
verbosityNoResponse verbosity: 'minimal' (token-efficient), 'standard' (default), 'detailed' (debug info)

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It clearly describes the core behavior ('Clears all premises, session remains valid'), which is essential for understanding this destructive operation. However, it doesn't mention potential side effects like whether this affects other session data or error conditions, leaving some behavioral aspects unspecified.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is efficiently structured with clear sections: purpose statement, usage guidelines, and an example. Each sentence serves a distinct purpose with zero wasted content, and the information is front-loaded with the most important details first.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a destructive operation with no annotations and no output schema, the description provides good context about what the tool does and when to use it. However, it doesn't describe what happens to the cleared premises (are they recoverable?) or what the response contains, leaving some completeness gaps for a mutation tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 100% schema description coverage, the schema already fully documents both parameters. The description doesn't add any parameter-specific information beyond what's in the schema, though it does provide an example showing session_id usage. This meets the baseline expectation when schema coverage is complete.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the specific action ('Clear all premises') and resource ('from a session'), with explicit differentiation from sibling tools like delete-session by noting 'keeps session alive'. This provides a precise verb+resource combination that distinguishes it from alternatives.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description includes a dedicated 'When to use' section that explicitly states 'Start fresh within the same session', providing clear guidance on when this tool should be used versus alternatives like delete-session (which would terminate the session). This gives explicit context for tool selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create-sessionA

Create a new reasoning session for incremental knowledge base construction.

When to use: You want to build up premises incrementally and query multiple times. When NOT to use: Single query with all premises known upfront (use prove directly).

Example: ttl_minutes: 30 → Returns: { session_id: "uuid...", expires_at: ... }

Notes:

  • Sessions auto-expire after TTL (default: 30 minutes)

  • Maximum 1000 concurrent sessions

  • Session ID must be passed to all session operations

ParametersJSON Schema
NameRequiredDescriptionDefault
ttl_minutesNoSession time-to-live in minutes (default: 30, max: 1440)
verbosityNoResponse verbosity: 'minimal' (token-efficient), 'standard' (default), 'detailed' (debug info)

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes key traits: sessions auto-expire after TTL (with a default), there's a maximum of 1000 concurrent sessions, and the session ID must be passed to all session operations. However, it lacks details on error handling or performance limits beyond concurrency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with clear sections (purpose, usage guidelines, example, notes), each sentence adds value without redundancy, and it's front-loaded with the core purpose. It efficiently conveys necessary information in a compact format.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (creating sessions with expiration and concurrency limits), no annotations, and no output schema, the description does a good job covering key aspects like purpose, usage, behavioral traits, and an example. However, it could be more complete by detailing the output structure beyond the example or error scenarios.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents both parameters (ttl_minutes and verbosity) thoroughly. The description adds minimal parameter semantics beyond the schema, such as implying ttl_minutes affects expiration in the example, but it doesn't provide additional syntax or format details. This meets the baseline of 3 when schema coverage is high.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states the tool's purpose as 'Create a new reasoning session for incremental knowledge base construction,' which is a specific verb ('Create') + resource ('reasoning session') with clear scope ('incremental knowledge base construction'). It distinguishes from sibling tools like 'prove' by emphasizing incremental building versus single-query operations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description includes explicit 'When to use' and 'When NOT to use' sections, clearly stating to use this tool for incremental premise building and querying multiple times, and to avoid it for single queries with known premises (using 'prove' instead). This provides direct guidance on alternatives and context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

delete-sessionA

Delete a session entirely.

When to use: Done with a session, want to free resources.

Example: session_id: "abc-123..." → Session is deleted and ID becomes invalid

ParametersJSON Schema
NameRequiredDescriptionDefault
session_idYesSession ID to delete
verbosityNoResponse verbosity: 'minimal' (token-efficient), 'standard' (default), 'detailed' (debug info)

TDQS

A4.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It discloses that deletion makes the session ID invalid, which is a key behavioral trait. However, it lacks details on permissions, error conditions, or resource implications beyond freeing resources, leaving some behavioral aspects unclear.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core purpose, followed by usage guidelines and an example. Each sentence earns its place by adding value: the first states the action, the second provides context, and the third illustrates usage. No wasted words, and structure enhances clarity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no annotations and no output schema, the description is moderately complete. It covers purpose, usage, and an example, but lacks details on return values, error handling, or deeper behavioral traits. For a destructive tool with 2 parameters, this is adequate but has clear gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema fully documents both parameters. The description adds minimal value beyond the schema: it mentions 'session_id' in the example but doesn't explain parameter semantics further. Baseline 3 is appropriate as the schema handles the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the specific action ('Delete') and resource ('a session entirely'), distinguishing it from sibling tools like 'clear-session' (which likely clears content) and 'create-session' (which creates). The verb+resource combination is precise and unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly includes a 'When to use' section that states 'Done with a session, want to free resources,' providing clear context for when this tool should be invoked versus alternatives like 'clear-session' or 'create-session.' This directly addresses sibling differentiation.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

find-counterexampleA

Find a counterexample showing the conclusion doesn't follow from premises.

When to use: You suspect a conclusion doesn't logically follow and want proof. When NOT to use: You want to prove the conclusion (use prove instead).

Example: premises: ["P(a)"] conclusion: "P(b)" → Returns counterexample where P(a)=true but P(b)=false

How it works: Searches for a model satisfying premises ∧ ¬conclusion. If found, proves the conclusion doesn't logically follow.

ParametersJSON Schema
NameRequiredDescriptionDefault
premisesYesList of logical premises
conclusionYesConclusion to disprove
domain_sizeNoSpecific domain size to search
max_domain_sizeNoMaximum domain size to try (default: 10)
verbosityNoResponse verbosity: 'minimal' (token-efficient), 'standard' (default), 'detailed' (debug info)

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It explains the tool's mechanism ('Searches for a model satisfying premises ∧ ¬conclusion') and outcome behavior ('If found, proves the conclusion doesn't logically follow'), which is valuable context beyond basic functionality. However, it doesn't mention performance characteristics like computational limits or error handling.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with clear sections (purpose, usage guidelines, example, mechanism), uses bullet points effectively, and every sentence adds value. It's appropriately sized for a tool with multiple parameters and sibling alternatives.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's logical reasoning complexity and lack of output schema, the description provides good contextual coverage: purpose, usage guidelines, example, and operational mechanism. It could be more complete by explaining the format of returned counterexamples or error conditions, but it's largely adequate for the agent's needs.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all parameters thoroughly. The description adds minimal parameter-specific information beyond the schema (e.g., it implies 'premises' and 'conclusion' are logical formulas in the example). This meets the baseline for high schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states the tool's purpose: 'Find a counterexample showing the conclusion doesn't follow from premises.' It uses specific verbs ('find', 'showing') and clearly distinguishes it from the 'prove' sibling tool, making the purpose unambiguous and differentiated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description includes explicit 'When to use' and 'When NOT to use' sections, providing clear guidance on when to select this tool versus the 'prove' alternative. This directly addresses sibling tool differentiation and usage context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

find-modelA

Find a finite model satisfying the given premises.

When to use: You want to show premises are satisfiable (have at least one model). When NOT to use: You want to prove a conclusion follows (use prove instead).

Example: premises: ["exists x P(x)", "all x (P(x) -> Q(x))"] → Returns: { success: true, model: { domain: [0], predicates: {...} } }

Performance notes:

  • Searches domains size 2 through max_domain_size (default: 10)

  • Larger domains take exponentially longer

  • Use domain_size to search a specific size only

ParametersJSON Schema
NameRequiredDescriptionDefault
premisesYesList of logical premises
domain_sizeNoSpecific domain size to search (skips incremental search)
max_domain_sizeNoMaximum domain size to try (default: 10). Larger values may timeout.
verbosityNoResponse verbosity: 'minimal' (token-efficient), 'standard' (default), 'detailed' (debug info)

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden. It effectively discloses key behavioral traits: the search strategy (domains size 2 through max_domain_size), performance implications ('larger domains take exponentially longer'), and the effect of the domain_size parameter ('skips incremental search'). It doesn't cover error handling or output format details, but provides substantial operational context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with clear sections (purpose, usage guidelines, example, performance notes), each sentence adds value, and it's front-loaded with the core purpose. There's no redundant or wasted text, making it efficient for an agent to parse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with no annotations and no output schema, the description does well by covering purpose, usage, example, and performance. It explains the search behavior and constraints, which is crucial for a satisfiability tool. The main gap is the lack of output format details (only hinted in the example), but given the context, it's reasonably complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description adds some value through the example showing premises usage and performance notes about domain sizes, but doesn't significantly enhance parameter understanding beyond what the schema already documents. The example illustrates premises format but doesn't explain other parameters deeply.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description starts with a clear, specific statement: 'Find a finite model satisfying the given premises.' This explicitly states the verb ('find') and resource ('finite model'), and distinguishes it from sibling tools like 'prove' or 'find-counterexample' by focusing on satisfiability rather than proof or counterexamples.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description includes explicit 'When to use' and 'When NOT to use' sections, directly naming the alternative tool ('prove') and clarifying the distinction between satisfiability and proof. This provides clear guidance on tool selection in context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get-category-axiomsA

Get FOL axioms for category theory concepts.

Available concepts:

  • category: Composition, identity, associativity axioms

  • functor: Preserves composition and identity

  • natural-transformation: Naturality condition

  • monoid: Binary operation with identity and associativity

  • group: Monoid with inverses

Example: concept: "monoid" → Returns axioms for monoid structure

ParametersJSON Schema
NameRequiredDescriptionDefault
conceptYesWhich concept's axioms to retrieve
functor_nameNoFor functor axioms: name of the functor (default: F)
verbosityNoResponse verbosity: 'minimal' (token-efficient), 'standard' (default), 'detailed' (debug info)

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden. It discloses that the tool retrieves axioms (implying a read-only operation) and includes an example of output format, but lacks details on behavioral traits like error handling, rate limits, or authentication needs. The example adds some context but is not comprehensive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is appropriately sized and front-loaded, starting with the core purpose, followed by a structured list of concepts and a clear example. Every sentence earns its place by providing essential information without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (3 parameters, no output schema, no annotations), the description is somewhat complete but has gaps. It covers the purpose and concepts well, but lacks details on output format beyond the example, error cases, or how parameters like 'verbosity' affect behavior, making it adequate but not fully comprehensive.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all parameters. The description adds minimal value by listing concepts and providing an example that implies the 'concept' parameter usage, but does not explain parameter interactions or semantics beyond what the schema provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose with specific verb ('Get') and resource ('FOL axioms for category theory concepts'), and distinguishes it from siblings by focusing on retrieving axioms rather than operations like proving or verifying. The list of available concepts further specifies the scope.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context for when to use this tool by listing available concepts and including an example, but it does not explicitly state when not to use it or mention alternatives among sibling tools (e.g., 'prove' or 'verify-commutativity').

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list-premisesA

List all premises in a session's knowledge base.

When to use: Review what has been asserted so far.

Example: session_id: "abc-123..." → Returns: { premises: ["all x (man(x) -> mortal(x))", "man(socrates)"] }

ParametersJSON Schema
NameRequiredDescriptionDefault
session_idYesSession ID from create-session
verbosityNoResponse verbosity: 'minimal' (token-efficient), 'standard' (default), 'detailed' (debug info)

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It discloses that the tool lists premises from a session's knowledge base and provides an example output format, which adds useful behavioral context. However, it doesn't mention potential limitations like pagination, error conditions, or performance characteristics, leaving some gaps for a tool with no annotation coverage.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with a clear purpose statement, usage guidelines, and an example, all in three concise sentences. Every sentence adds value without redundancy, and it's front-loaded with the core functionality.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no annotations, no output schema, and 2 parameters with full schema coverage, the description is mostly complete. It covers purpose, usage, and provides an output example, but lacks details on error handling or behavioral constraints. For a read-only list tool, this is adequate but could be more comprehensive.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already fully documents both parameters (session_id and verbosity). The description doesn't add any parameter-specific information beyond what's in the schema, such as explaining the impact of verbosity levels on the output. Baseline 3 is appropriate when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'List' and resource 'premises in a session's knowledge base', making the purpose specific. It distinguishes from siblings like 'assert-premise' (adds premises) and 'query-session' (queries premises) by focusing on listing all premises without modification or querying.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly includes a 'When to use' section stating 'Review what has been asserted so far', providing clear context for usage. It distinguishes from alternatives by implying this is for listing all premises rather than querying specific ones (vs. 'query-session') or modifying them (vs. 'assert-premise', 'retract-premise').

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

proveA

Prove a logical statement using resolution.

When to use: You have premises and want to verify a conclusion follows logically. When NOT to use: You want to find counterexamples (use find-counterexample instead).

Example: premises: ["all x (man(x) -> mortal(x))", "man(socrates)"] conclusion: "mortal(socrates)" → Returns: { success: true, result: "proved" }

Common issues:

  • "No proof found" often means inference limit reached, not that the theorem is false

  • Try increasing inference_limit for complex proofs

ParametersJSON Schema
NameRequiredDescriptionDefault
premisesYesList of logical premises in FOL syntax
conclusionYesStatement to prove
inference_limitNoMax inference steps before giving up (default: 1000). Increase for complex proofs.
enable_arithmeticNoEnable arithmetic predicates (lt, gt, plus, minus, times, etc.). Default: false.
enable_equalityNoAuto-inject equality axioms (reflexivity, symmetry, transitivity, congruence). Default: false.
engineNoReasoning engine: 'prolog' (Horn clauses), 'sat' (general FOL), 'auto' (select based on formula). Default: 'auto'.
verbosityNoResponse verbosity: 'minimal' (token-efficient), 'standard' (default), 'detailed' (debug info)

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes key behaviors: the tool performs logical proof via resolution, explains that 'No proof found' often means inference limit reached (not theorem false), and suggests increasing inference_limit for complex proofs. It also provides an example of the return format. While comprehensive, it could mention more about error handling or performance characteristics.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with clear sections (purpose, usage guidelines, example, common issues), each sentence adds value, and it's front-loaded with the core purpose. There's no redundant or wasted text, making it highly efficient for an AI agent to parse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (7 parameters, logical reasoning), no annotations, and no output schema, the description does a strong job. It explains the tool's purpose, usage context, provides an example output, and addresses common pitfalls. However, without an output schema, it could more explicitly detail the full range of possible return values or error conditions beyond the example.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all 7 parameters thoroughly. The description adds minimal parameter-specific information beyond the schema (e.g., it mentions inference_limit in the 'Common issues' section). This meets the baseline of 3 where the schema does the heavy lifting, but the description doesn't significantly enhance parameter understanding.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states the tool's purpose: 'Prove a logical statement using resolution.' It specifies the verb ('prove'), resource ('logical statement'), and method ('using resolution'), clearly distinguishing it from siblings like 'find-counterexample' or 'find-model' which serve different logical functions.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description includes dedicated 'When to use' and 'When NOT to use' sections, explicitly stating to use this tool for verifying conclusions from premises and to use 'find-counterexample' instead for finding counterexamples. This provides clear, actionable guidance on tool selection versus alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

query-sessionA

Query the accumulated knowledge base in a session.

When to use: After asserting premises, query for a conclusion.

Example: session_id: "abc-123..." goal: "mortal(socrates)" → Attempts to prove the goal from accumulated premises

ParametersJSON Schema
NameRequiredDescriptionDefault
session_idYesSession ID from create-session
goalYesFOL formula to prove from the knowledge base
inference_limitNoMax inference steps (default: 1000)
verbosityNoResponse verbosity: 'minimal' (token-efficient), 'standard' (default), 'detailed' (debug info)

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It describes the core behavior (attempting to prove a goal from accumulated premises) and includes an example showing expected inputs/outputs. However, it doesn't disclose important behavioral traits like error conditions, performance characteristics, what happens when the goal cannot be proven, or whether this is a read-only vs. mutating operation. The example adds some context but leaves gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is perfectly structured and concise. It leads with the core purpose, follows with usage guidelines, and provides a concrete example. Every sentence earns its place: the first states what the tool does, the second tells when to use it, and the example illustrates practical application. No wasted words or redundant information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (a query/proving tool with 4 parameters), lack of annotations, and no output schema, the description is moderately complete. It covers the purpose and usage context well but doesn't fully address behavioral aspects like what the response contains, error handling, or performance considerations. The example helps but doesn't substitute for explicit behavioral disclosure. For a tool of this complexity, more complete behavioral information would be beneficial.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already fully documents all four parameters. The description doesn't add any parameter-specific information beyond what's in the schema descriptions. The example shows usage of 'session_id' and 'goal' but doesn't explain their semantics further. With complete schema coverage, the baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Query the accumulated knowledge base in a session.' This specifies the verb ('query') and resource ('accumulated knowledge base'), and distinguishes it from siblings like 'list-premises' (which lists premises) or 'prove' (which might be a different proving mechanism). However, it doesn't explicitly differentiate from 'find-model' or 'find-counterexample' which are also query-like operations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit usage guidance: 'After asserting premises, query for a conclusion.' This clearly states when to use the tool (after premises are asserted) and implies an alternative workflow (premises must be established first). It doesn't specify when NOT to use it or name alternatives directly, but the context is sufficiently clear for effective tool selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

retract-premiseA

Remove a specific premise from a session's knowledge base.

When to use: You need to undo an assertion or explore alternative premises.

Example: session_id: "abc-123..." formula: "man(plato)" → Removes the exact formula if found

ParametersJSON Schema
NameRequiredDescriptionDefault
session_idYesSession ID from create-session
formulaYesExact formula to remove (must match what was asserted)
verbosityNoResponse verbosity: 'minimal' (token-efficient), 'standard' (default), 'detailed' (debug info)

TDQS

A4.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool 'Removes the exact formula if found,' which clarifies it's a destructive operation (mutation) with conditional execution. However, it doesn't mention error handling (e.g., what happens if formula not found), permissions, or rate limits, leaving some behavioral aspects unspecified.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core purpose, followed by a clear usage guideline and a concrete example. Every sentence earns its place: the first states what it does, the second when to use it, and the third illustrates with parameters. No wasted words, and the structure is logical and efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's moderate complexity (destructive operation with conditional removal), no annotations, and no output schema, the description does well by covering purpose, usage, and parameter behavior. However, it lacks details on error cases or return values, which would be helpful for a mutation tool. It's mostly complete but has minor gaps in behavioral context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all parameters thoroughly. The description adds minimal value beyond the schema by emphasizing 'Exact formula to remove (must match what was asserted)' in the example, reinforcing the matching requirement. With high schema coverage, the baseline is 3, but the added emphasis on exact matching justifies a slightly higher score.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the specific action ('Remove') and target resource ('a specific premise from a session's knowledge base'), distinguishing it from siblings like 'clear-session' (removes all premises) or 'delete-session' (removes entire session). The verb+resource combination is precise and unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly provides a 'When to use' section that states 'You need to undo an assertion or explore alternative premises,' giving clear context for usage. It also distinguishes from alternatives by specifying removal of 'a specific premise' rather than all premises (clear-session) or the session itself (delete-session).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

verify-commutativityA

Verify that a categorical diagram commutes by generating FOL premises and conclusion.

When to use: You have a categorical diagram and want to verify path equality. When NOT to use: For non-categorical reasoning (use prove directly).

Example: path_a: ["f", "g"], path_b: ["h"] object_start: "A", object_end: "C" → Generates premises/conclusion for proving compose(f,g) = h

Output: Returns premises and conclusion to pass to the prove tool.

ParametersJSON Schema
NameRequiredDescriptionDefault
path_aYesList of morphism names in first path
path_bYesList of morphism names in second path
object_startYesStarting object
object_endYesEnding object
with_category_axiomsNoInclude basic category theory axioms (default: true)
verbosityNoResponse verbosity: 'minimal' (token-efficient), 'standard' (default), 'detailed' (debug info)

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden and does well by explaining the tool's behavior: it generates premises/conclusion for proving path equality, mentions the output format (premises and conclusion to pass to prove tool), and includes an example. However, it doesn't cover potential limitations like error conditions or computational constraints.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Well-structured with clear sections: purpose statement, usage guidelines, example, and output description. Every sentence adds value without redundancy, and the information is front-loaded with the core purpose first.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with no annotations and no output schema, the description provides good context: purpose, usage boundaries, example, and output format. It could be more complete by explaining what happens with the 'with_category_axioms' parameter or potential failure modes, but covers the essential behavioral aspects well.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all 6 parameters thoroughly. The description adds minimal value beyond the schema through the example showing how path_a, path_b, object_start, and object_end work together. This meets the baseline for high schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the specific verb ('verify') and resource ('categorical diagram commutes'), explaining it generates FOL premises and conclusion for path equality. It distinguishes from sibling tools like 'prove' by focusing specifically on diagram verification rather than general proving.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly provides 'When to use' (for categorical diagram verification) and 'When NOT to use' (for non-categorical reasoning, directing to 'prove' instead). This gives clear guidance on when to select this tool versus alternatives among siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 13 tool updates
    • First observedassert-premise
    • First observedcheck-well-formed
    • First observedclear-session
    • First observedcreate-session
    • First observeddelete-session
    • First observedfind-counterexample
    • First observedfind-model
    • First observedget-category-axioms
    • First observedlist-premises
    • First observedprove
    • First observedquery-session
    • First observedretract-premise
    • First observedverify-commutativity

TDQS

A4.3/5.0
Disambiguation5/5

Each tool has a clearly distinct purpose with minimal overlap. For example, prove and find-counterexample are complementary for logical verification, while session management tools like create-session and delete-session handle specific lifecycle stages. The descriptions explicitly state when to use and when not to use each tool, preventing confusion.

Naming Consistency4/5

Most tools follow a consistent verb-noun pattern with hyphens (e.g., assert-premise, clear-session, find-model). However, get-category-axioms and verify-commutativity slightly deviate by using more descriptive nouns, but they remain readable and fit the overall style. The naming is predictable and aids in understanding tool functions.

Tool Count5/5

With 13 tools, the set is well-scoped for a logic reasoning server, covering core operations like session management, premise handling, proof verification, and model finding. Each tool serves a specific role without redundancy, such as list-premises for review and retract-premise for corrections, making the count appropriate for the domain.

Completeness5/5

The tool set provides comprehensive coverage for logical reasoning workflows, including session lifecycle (create, clear, delete), premise management (assert, list, retract), verification (prove, find-counterexample, query-session), and specialized tasks like model finding and category theory support. No obvious gaps exist; agents can perform end-to-end reasoning tasks effectively.

Maintenance

ActivityInactive
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    F
    maintenance
    Provides symbolic reasoning capabilities by converting natural language logical problems into Answer Set Programming (ASP) format and solving them using the Clingo solver. Enables users to perform formal logical reasoning, verify logical arguments, and get step-by-step explanations for complex logical problems.
    5
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables formal logical reasoning, mathematical problem-solving, and proof construction across 11 logic systems including propositional, predicate, modal, fuzzy, and probabilistic logic. Integrates external solvers (Z3, ProbLog, Clingo) for advanced reasoning, with support for proof storage, argument scoring, and cross-system translation.
    1
    MIT

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