MCP Logic
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {} |
| prompts | {} |
| resources | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| 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:
|
| 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:
|
| 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:
|
| 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. |
| 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. |
| get-category-axiomsA | Get FOL axioms for category theory concepts. Available concepts:
Example: concept: "monoid" → Returns axioms for monoid structure |
| 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:
|
| 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 |
| 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 |
| 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 |
| 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)"] } |
| 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 |
| 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 |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| prove-by-contradiction | Set up an indirect proof by assuming the negation of the statement |
| verify-equivalence | Prove logical equivalence A ↔ B by showing both directions |
| formalize | Guide natural language to first-order logic translation |
| diagnose-unsat | Find a minimal unsatisfiable subset of premises |
| explain-proof | Generate a human-readable explanation of a proof |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| Category Theory Axioms | Basic category theory: composition, identity, associativity |
| Monoid Axioms | Monoid structure: binary operation, identity, associativity |
| Group Axioms | Group structure: monoid axioms plus inverses |
| Peano Arithmetic | Peano axioms for natural numbers |
| ZFC Set Theory Basics | Basic ZFC set theory axioms (extensionality, pairing, union) |
| Propositional Logic | Classical propositional tautologies and inference rules |
| Syllogism Patterns | Classic Aristotelian syllogism patterns |
| Available Reasoning Engines | List of available reasoning engines with their capabilities |
TDQS
Scored across 13 tools
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.
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.
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.
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.