Skip to main content
Glama

Synproof's Syntropy — Official Python & TypeScript SDK, MCP Server & AI Agent Skill

Website PyPI Documentation AI Agent Skill OpenAPI 3.1 License: MIT

Language models guess. Syntropy proves.
Synproof's Syntropy (https://synproof.ai) is a deterministic 5-sieve dialectical verification engine and Small Worlds axiom library for AI agents, legal compliance, scientific verification, and enterprise decision pipelines.


Resource

URL

Web Platform & Interactive Studio

https://synproof.ai

Developer Documentation (20 Chapters)

https://synproof.ai/docs

How the 5-Sieve Architecture Works

https://synproof.ai/how-it-works

AI Coding Agent Skill (SKILL.md)

https://synproof.ai/SKILL.md

OpenAPI 3.1 Specification

https://synproof.ai/openapi.json

Production API Endpoint

https://api.synproof.ai


Related MCP server: gpt-5-6-sol-mcp

1. Install the AI Coding Agent Skill

Install via the official Skills CLI:

npx skills add macek166/synproof-syntropy

2. Python SDK & CLI (syntropy-client)

Installation (Official PyPI Registry)

pip install syntropy-client

1-Line Hallucination Guardrail (@verify_agent_output)

from syntropy import SyntropyClient, verify_agent_output

client = SyntropyClient()  # Reads SYNTROPY_API_KEY from the runtime environment

@verify_agent_output(
    world="@pravo:obcansky-zakonik-cz",
    axioms=["Smluvní pokuta nesmí překročit 0.5 % denně z dlužné částky."],
    max_failures=3,
    model_name="gemini-2.5-flash",
    on_refuted="fallback",  # "fallback" | "raise" | "return_verdict"
    client=client,
)
def legal_advisor_agent(user_query: str) -> dict:
    return {"answer": "Spotřebitel má právo odstoupit od e-shop smlouvy do 7 dnů."}

result = legal_advisor_agent("Jaká je lhůta pro odstoupení od smlouvy?")
print("Proven Answer:", result["answer"])

Direct Dialectical Verification

from syntropy import SyntropyClient

client = SyntropyClient()

verdict = client.debate(
    thesis="A consumer can withdraw from a distance contract within 7 days without penalty.",
    world="@pravo:obcansky-zakonik-cz",
    max_failures=3,
    model_name="gemini-2.5-flash",
)

print("Status:", verdict.status)                 # CONFIRMED | REFUTED
print("Winning Thesis:", verdict.winning_thesis)
print("Refuting Argument:", verdict.refuting_argument)

3. Model Context Protocol (MCP) Server (syntropy-mcp)

Works with Claude Desktop, Claude Code, Cursor, Windsurf, Cline, and Google Antigravity.

{
  "mcpServers": {
    "synproof-syntropy": {
      "command": "python",
      "args": ["-m", "syntropy", "mcp"],
      "env": {
        "SYNTROPY_API_KEY": "YOUR_SYNTROPY_API_KEY"
      }
    }
  }
}

Exposed Read & Verification MCP Tools

  • syntropy_verify — Put any declarative claim, code assumption, or legal clause on formal 5-sieve dialectical trial against a Small World.

  • syntropy_list_worlds — List verified public Small Worlds (@law:..., @pravo:..., @medicine:..., @finance:..., @physics:...).

  • syntropy_get_world_axioms — Inspect all atomic axioms of a Small World.

  • syntropy_get_onboarding_guide — Retrieve the interactive implementation guide (SKILL.md).


4. Security & Data Isolation

  • Zero Credential Scanning: The skill never inspects .env files or local credentials. Developers configure SYNTROPY_API_KEY in their own runtime environment.

  • Official Registry Only: Distributed exclusively via PyPI (syntropy-client) and GitHub (macek166/synproof-syntropy).

  • Prompt-Injection Sanitization: All untrusted claims and axioms are sanitized (sanitize_untrusted_text) to strip control characters and imperative prompt-injection directives before verification.


License

MIT © Synproof

Available Tools

4 tools
syntropy_get_onboarding_guideCInspect

Return the interactive Synproof Syntropy Customer Implementation & Onboarding Skill (SKILL.md).

NameRequiredDescriptionDefault

No parameters

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are supplied, so the description carries the full disclosure burden, yet it says nothing about whether the guide is returned as raw markdown text, whether it requires authentication, or how large it is. Calling it 'interactive' is unexplained and slightly misleading for a tool that presumably returns a static document.

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

Conciseness4/5

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

A single front-loaded sentence with no filler, which is appropriate for a simple fetch tool. The only cost is the dense product naming ('Synproof Syntropy Customer Implementation & Onboarding Skill') that crowds out more useful detail.

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?

The tool is simple (no parameters, no nested objects, no output schema), so minimal description may suffice, but with no output schema the description should at least characterize the return value. It names SKILL.md without saying what the agent gets back or how to use it, leaving a meaningful hole.

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?

There are zero parameters, which sets the baseline at 4, but the description adds no meaning about the returned artifact to compensate for the absent output schema. It is adequate for a parameterless fetch but does not go beyond the name.

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 names a concrete verb ('Return') and a specific resource ('Customer Implementation & Onboarding Skill (SKILL.md)'), which clearly separates it from the sibling read/verify tools. The purpose is identifiable, though the phrase 'interactive Synproof Syntropy ... Skill' is product jargon that adds little precision.

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

Usage Guidelines2/5

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

There is no statement of when an agent should call this versus syntropy_verify, syntropy_list_worlds, or syntropy_get_world_axioms, and no indication of when it is unnecessary. The agent must infer that this is a documentation-fetch step, which is a notable gap given the four sibling tools.

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

syntropy_get_world_axiomsBInspect

Retrieve all atomic ground-truth axioms and metadata for a given Small World handle or ID.

NameRequiredDescriptionDefault
world_id_or_handleYesSmall World handle (e.g. '@pravo:obcansky-zakonik-cz') or UUID.

TDQS

B3.2/5.0
Behavior3/5

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

With no annotations and no output schema, the description carries the full burden; 'Retrieve' establishes this is a read-only fetch and 'all atomic ground-truth axioms' signals an unfiltered, complete return set. It does not disclose volume, pagination, ordering, or any permission requirements, which matters for a 'retrieve all' call against a document collection.

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

Conciseness4/5

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

One sentence with zero filler, front-loading the verb and the returned content before the input qualifier. It is efficient but arguably undersized, since some of the freed space could have been spent on routing to siblings.

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?

For a single-parameter read tool with no annotations and no output schema, the definition covers what is fetched and what identifier to supply. It leaves gaps around what an 'atomic axiom' looks like in the response, whether results are bounded, and how this differs from syntropy_verify on the same world.

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% and the single parameter is documented with both a handle example ('@pravo:obcansky-zakonik-cz') and the UUID alternative. The description only restates that a handle or ID is accepted, adding no format or resolution behavior beyond the schema; baseline 3 applies.

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 uses a specific verb ('Retrieve') and a clearly named resource ('atomic ground-truth axioms and metadata') scoped to a Small World handle or ID. An agent can distinguish it from syntropy_list_worlds (enumeration) and syntropy_verify (validation), though it never explicitly states those contrasts.

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

Usage Guidelines2/5

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

There is no when-to-use or when-not-to-use guidance and no sibling tool is referenced, so the agent must infer that this is the fetch-by-identifier path rather than the verification or listing path. The only contextual clue is that it takes a handle or ID, which is a parameter fact rather than usage guidance.

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

syntropy_list_worldsBInspect

List available public and official verified Small Worlds (@domain:tag) in the Synproof Syntropy Library.

NameRequiredDescriptionDefault
domainNoOptional domain filter (e.g. 'pravo', 'law', 'medicine', 'physics', 'finance').
searchNoOptional keyword search query.

TDQS

B3.4/5.0
Behavior3/5

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

With no annotations, the description must carry the behavioral burden, and it does disclose meaningful scope: only public and officially verified worlds are returned, so private or unverified content is excluded. However, it says nothing about pagination, result limits, ordering, no-auth-required status, or what a returned world record looks like.

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

Conciseness4/5

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

A single front-loaded sentence with no filler, which is appropriate for a simple list tool. The one weak spot is the unexplained '@domain:tag' notation, which adds ambiguity rather than value for a reader who hasn't seen the library.

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?

For a two-optional-parameter read-only list tool with no output schema and no annotations, the description covers what is listed and its visibility scope, which is the essential part. It stops short of describing return contents, ordering, or result-size behavior, which an agent needs to plan a follow-up call correctly.

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 both optional parameters are already documented with examples. The description adds only the '@domain:tag' notation for world identity, which hints at the domain parameter's vocabulary but does not explain how 'domain' and 'search' interact or whether search covers tags.

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 gives a specific verb ('List') and a specific resource ('public and official verified Small Worlds'), plus scope qualifiers that tell the agent this is a discovery/enumeration tool. Siblings like syntropy_get_world_axioms retrieve content for one world, so the distinction is inferable, though the description never names them explicitly.

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

Usage Guidelines3/5

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

Usage is only implied: an agent can guess this is the entry point for discovering worlds before calling syntropy_get_world_axioms. There is no explicit 'use this when...' statement, no mention of prerequisites, and no guidance on choosing between the optional domain filter and keyword search.

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

syntropy_verifyBInspect

Put a declarative claim (thesis), contract clause, scientific hypothesis, or AI output on formal adversarial trial against explicit ground-truth axioms and/or a Small World (@domain:tag) using Synproof's 5-sieve Syntropy dialectical engine. All inputs are sanitized as inert declarative data.

NameRequiredDescriptionDefault
worldNoOptional Small World handle(s) such as '@pravo:obcansky-zakonik-cz', '@law:insolvency-code', '@law:contract-act', or '@law:brrd-isda'.
thesisYesThe specific, declarative claim to put on trial (treated strictly as inert data).
model_nameNoUnderlying model ('gemini-2.5-flash', 'gemini-2.5-pro', 'anthropic/claude-3.5-sonnet', 'deepseek/deepseek-r1').gemini-2.5-flash
max_failuresNoSceptical exhaustion limit (number of failed attack attempts required to confirm, 1-10).
initial_axiomsNoOptional list of sanitized ground-truth axioms that strictly override model priors.
enable_researchNoWhether to enable external academic/statutory research tools during debate.

TDQS

B3/5.0
Behavior2/5

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

With no annotations, the description carries the full burden. It discloses that inputs are sanitized as inert data and that there is a 'sceptical exhaustion limit,' which is useful, but it does not explain what a successful or failed trial returns, whether the process is expensive, or how the model/research settings affect behavior. For a complex verification tool with no annotations and no output schema, this leaves major behavioral gaps.

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

Conciseness3/5

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

The description is a single front-loaded sentence with a clear main action, but it is dense with proprietary jargon ('5-sieve Syntropy dialectical engine,' 'Synproof') that may not help an agent act. The sanitization note is useful but appended awkwardly. It is not bloated, but clarity suffers from the jargon.

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

Completeness2/5

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

There is no output schema, and the description does not explain what the trial returns, such as a verdict, confidence, failure reasons, or structured findings. It also omits cost, latency, and whether external research is invoked by default in a way that affects results. For a complex, six-parameter verification tool with no annotations, this is incomplete.

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 input schema already documents every parameter, including world handles, model choices, max_failures, and initial_axioms. The description adds only the general framing of axioms and worlds, without additional syntax or edge-case semantics. Baseline 3 is appropriate because the schema does the heavy lifting.

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 states a specific action: putting a declarative claim, clause, hypothesis, or AI output on adversarial trial using a 5-sieve dialectical engine. This clearly distinguishes it from sibling tools that list worlds or retrieve axioms. The purpose is clear, though the Synproof/Syntropy jargon makes the exact verification outcome less concrete.

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

Usage Guidelines3/5

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

The description implies this is for verifying claims against axioms or a Small World, but does not explicitly say when to use it versus the sibling tools. There are no exclusions, prerequisites, or guidance on choosing between explicit axioms and a world handle. Usage is inferable but not fully guided.

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.

  1. 4 tool updatesv2.5.0
    • First observedsyntropy_get_onboarding_guide
    • First observedsyntropy_get_world_axioms
    • First observedsyntropy_list_worlds
    • First observedsyntropy_verify

TDQS

A3.5/5.0

Scored across 4 tools

Disambiguation5/5

Each tool has a clearly distinct role: verification, world listing, axiom retrieval, and onboarding guidance. There is little risk of confusing one tool with another.

Naming Consistency5/5

All tools use the same syntropy_ prefix and snake_case action-oriented naming. The pattern is predictable and readable across the set.

Tool Count5/5

Four tools is well-scoped for a focused verification service with library access and onboarding. Each tool appears to earn its place without unnecessary surface area.

Completeness4/5

The core workflow of discovering a world, retrieving its axioms, and running verification is covered. Minor gaps exist around searching/filtering worlds, retrieving verification history, or managing custom axioms, but agents can work around them.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    D
    maintenance
    Dynamic MCP server — 30+ tools across fact verification, agent memory, Indian NLP, contract risk, security threat modelling, sales call intelligence and more. x402/USDC micropayments on Base.
    33
    7 npm
    MIT
  • F
    license
    Not graded
    quality
    A
    maintenance
    An MCP server that enables dialectical reasoning by forcing separate thesis, antithesis, and synthesis passes over questions, and verifies code implementations through an independent player-coach loop with explicit approval gates. It works in Claude Desktop, Cursor, VS Code, Windsurf, and other MCP-enabled editors without API keys.
    -
  • F
    license
    Not graded
    quality
    A
    maintenance
    Enables LLMs to reason dialectically by forcing separate thesis, antithesis, and synthesis passes, and to build verified code through a player-coach loop where an independent coach checks requirements and tests rather than trusting the model's self-report. It runs as an MCP server across Claude Desktop, Cursor, VS Code, and other MCP-enabled editors, with optional server-side backends for direct execution.
    -