Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Descripción del creador (original en inglés)
Parse, check, prove and translate logic formulas: first-order, modal, description, higher-order.
Estos tres nunca se combinan en una sola puntuación: las opiniones, las mediciones y la popularidad son cosas distintas.
Todavía no escribimos un resumen sencillo para este. Abajo están los datos que leímos del registro.
Elige la app de IA que usas y copia la configuración.
Necesitas
¿Qué app usas?
Elige tu app arriba. La recordamos, así que la próxima vez el botón dirá “Instalar en …”.
Abre Claude Desktop → Settings → Developer → Edit Config y pega esto en claude_desktop_config.json
{
"mcpServers": {
"unicode-logic-kit": {
"command": "uvx",
"args": [
"unicode-logic-kit",
"mcp"
]
}
}
}Ejecuta esto en tu terminal
claude mcp add unicode-logic-kit -- uvx unicode-logic-kit mcpPégalo en .cursor/mcp.json de tu proyecto, o en ~/.cursor/mcp.json
{
"mcpServers": {
"unicode-logic-kit": {
"command": "uvx",
"args": [
"unicode-logic-kit",
"mcp"
]
}
}
}Tu navegador te pide permiso para abrir la app; luego la app muestra la configuración y te pide confirmar. Los valores de las claves quedan vacíos para que los completes tú.
Pégalo en .vscode/mcp.json de tu proyecto
{
"servers": {
"unicode-logic-kit": {
"type": "stdio",
"command": "uvx",
"args": [
"unicode-logic-kit",
"mcp"
]
}
}
}Tu navegador te pide permiso para abrir la app; luego la app muestra la configuración y te pide confirmar. Los valores de las claves quedan vacíos para que los completes tú.
Este se ejecuta en tu computadora, y ChatGPT solo puede conectarse a servidores en internet. Elige otra app.
Tu elección se guarda en una cookie en este dispositivo; no necesitas cuenta.
Esta configuración se genera a partir de la ficha del creador en el registro. Si el README dice otra cosa, sigue el README.
Se ejecuta en tu computadora; la lista de herramientas aparece en tu app de IA después de instalarlo.
Revisamos información que cualquiera puede ver; no hemos leído el código. Las revisiones que no aplican no se cuentan. · Revisado el 6 nov 2026
El nombre en el registro se verificó con la cuenta de GitHub fvossel, dueña del repo
Todavía no hemos leído este repo en GitHub
Todavía no hemos leído este repo en GitHub
Este se ejecuta en tu computadora; no hay endpoint en internet
Se ejecuta en tu computadora y usa ajustes locales en su lugar
Se ejecuta en tu computadora; solo podemos leer listas de herramientas de endpoints en internet
Comparado con todos los servidores activos de esta categoría en el registro. Las estrellas solo cuentan cuando quien lo publica es dueño del repo.
Superó 1 de 1 revisiones básicas aplicables. No hemos leído el código. Antes de agregar una clave o un token, revisa qué acceso pide el servidor y usa una clave que tenga solo los permisos que necesitas.
El registro no indica ninguna clave obligatoria, aunque algunos servidores te piden iniciar sesión la primera vez que los usas.
Se ejecuta en tu computadora. Tu app de IA lo inicia cuando hace falta, y los datos no pasan por los servidores del creador (a menos que el propio servidor llame a un servicio en línea).
El repo de GitHub cambió por última vez –, y la última versión (0.35.0) llegó al registro hace 12 días.
Las apps compatibles con MCP, como Claude Desktop, Claude Code, Cursor y VS Code. También necesitas Python (uv) en tu computadora.
En la misma categoría: Spec Driven Development, Remote Desktop Commander, SSTracker free youth training
Servidores de la misma categoría hechos por otros creadores, ordenados por estrellas.
Cómo leer una tarjeta:★ Estrellas de GitHubiTres pilares: reseñas · revisiones · usoiActualizado = fecha en que se publicó la última versión en el registroi
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Free youth sports drills, practice plans and age-group answers for parents and coaches.
Copiado tal cual del repo del creador. PopNx MCP no lo ha revisado ni lo respalda. Se quitaron HTML, imágenes y scripts. Los enlaces llevan fuera de este sitio.
A Python toolkit for logic with Unicode operators — *parse, transform, and reason about* formulas of classical first-order logic and well beyond it: modal, temporal, hybrid, many-valued, fuzzy, intuitionistic, relevant, second- and third-order, description, dependence/IF, substructural, and a range of further non-classical logics. On top of that sits infrastructure for NL→logic research: one small API a verification loop can drive, one uniform verdict type over a dozen provers, and an evaluation toolbox for scoring LLM-generated formulas against benchmark gold data.
from unicode_logic_kit import MSFLParser, is_valid
phi = MSFLParser().parse( "∀x (Human(x) → Mortal(x)) ∧ Human(socrates) → Mortal(socrates)") print(is_valid(phi)) # True
Renamed in 0.31.0. Up to 0.30.0 this package was
unicode-fol-kit
(
import unicode_fol_kit): first-order logic is one of the logics it handles,
not the whole of it.
pip install -U unicode-fol-kitstill works — it installs
this package and forwards the old import name with a
DeprecationWarning— but
new code should
pip install unicode-logic-kitandimport unicode_logic_kit.
Nothing else changed its name, the
UFK_environment variables included.
api.parse_any (dialect auto-detection over Unicode / TPTP / LaTeX / Prover9 / SMT-LIB — never raises, records every parser's objection), api.check (well-formedness + signature conformance with did-you-mean suggestions), api.equivalent, api.prove, api.countermodel, api.repair (a diagnose→suggest→fix generator whose fixer callback is *your* LLM), api.translate (logic-to-logic via a comorphism registry). Every result has a JSON-compatible to_dict(), and the API carries an explicit stability policy.FOL(MSFOL(f)) converts a sorted formula and keeps its side axioms (each sort is non-empty, each sorted constant lies in its sort) *with* the term, as a Sentence; api.prove adds them as premises itself, which is the difference between a proof and a spurious countermodel. Each of the nine registry edges declares what it preserves (comorphism.GUARANTEES), which side axioms its image needs and which options it reads; a composed path reports the weakest guarantee on it. There is no implicit coercion between logics on purpose — see Translating between logics for why a translation is not an upcast.pip install unicode-logic-kit[mcp], then python -m unicode_logic_kit.mcp (or, with nothing installed, uvx "unicode-logic-kit[mcp]" mcp) exposes the toolkit as thirty-seven Model Context Protocol tools (23 general-purpose, 6 for chemistry, 8 for description logic) — any MCP client (Claude Code/Desktop, agent frameworks, editors) can parse, prove, diagnose and translate without writing Python; the repair loop inverts naturally (the client LLM is the fixer). An error-analysis layer comes along: prediction-vs-gold breakdowns with symbol diffs (compare_formulas), corpus metrics (score_batch), satisfiability of premise sets with model witnesses (check_consistency), normal forms, cross-syntax rendering, truth tables, signature extraction, and DRS→FOL for discourse phenomena.FiniteStructure + evaluate_in_structure answer that directly: no prenex form, no CNF (both are documented timeout sources elsewhere), quantifiers ranging over indexed candidate sets rather than the whole domain, counting quantifiers counted instead of expanded, and properties that are decidable on a structure but not first-order definable over it (connectivity, ring membership) admitted as computed predicates. unicode_logic_kit.chem turns a SMILES string into such a structure over the ChemLog signature.unicode_logic_kit.ilp turns those same structures into an ILP task (Popper's bk.pl / exs.pl / bias.pl) and reads the learned Prolog clause back as a kit formula you can model-check. Two encoding mistakes produce a hypothesis that scores precision 1.00 and means nothing — example-local individual names a learner joins across, and the example argument on every predicate — and both are refused rather than documented, on the way out and on the way back. check_separation asks the question that has to come first: does your reference definition separate the two example sets at all?prob.entailment_bounds answers "what does P(bird)=0.9 entail about P(fly)?" with the exact tightest interval (Nilsson's probabilistic entailment as a rational LP over possible worlds, conditionals included); prob.query answers ProbLog-style queries over definite programs with independent probabilistic facts under Sato's distribution semantics — every result an exact Fraction, every unsupported fragment a loud refusal.Verdict with a semantic status (proved / refuted / unknown / error), a separate *why-not-more* axis (timeout ≠ bound_hit ≠ incomplete ≠ unsupported), the SZS status, wall time, and JSON-able witnesses. Chains, portfolios (portfolio_prove, parallel with agreement thresholds and a soundness alarm on prover disagreement), and cached batch runs (batch_decide) are built on top.api.countermodel returns a machine-readable witness *plus* a plain-English rendering ("The countermodel has 2 possible worlds. … At world 0 the formula fails."), and refutation actually covers the temporal fragment: Ⓕ P → P comes back refuted with a two-world Kripke witness, not "unknown".from unicode_logic_kit import api
result = api.parse_any("∀x (Raven(x) → Black(x))") # LLM output, any dialect report = api.check(result.formula, signature={"predicates": {"Raven": 1, "Black": 1}}) verdict = api.prove(api.parse_any("Black(tweety)").formula, premises=[result.formula, api.parse_any("Raven(tweety)").formula]) print(verdict.status, verdict.backend, verdict.szs_status) # proved z3 Theorem
One parser class, MSFLParser, reads classical logic at the first, second and third order, each with or without sorts and with or without the modal family (modal/temporal/epistemic/deontic/hybrid): twelve combinations of three constructor flags. A fourth flag, fuzzy, puts the Łukasiewicz connectives in place of the two-valued ones in each of the twelve. Next to them stand team-semantic dependence/IF logic, intuitionistic linear logic, and the Lambek calculus. The surface syntax is natural Unicode (∀ ∃ ∧ ∨ ¬ → ↔ ⊕ ⊗ □ ◇ @ ⊸ 𝟙 …) with no ASCII fallbacks.
On top of the AST sits a full reasoning stack — four proof methods (a built-in resolution prover, Fitch natural deduction with checker *and* searcher, the Gentzen sequent calculi LK/LJ — the latter backed by Dyckhoff's G4ip, a genuine terminating decision procedure for propositional intuitionistic logic — and analytic tableaux), a finite model finder, SMT (Z3) and external-prover (Prover9 / Vampire) backends, truth tables, and dedicated semantics for every logic. Every proof method has an independent checker — including check_resolution_proof, which certifies externally produced resolution derivations (paramodulation steps included) with its own from-scratch unification, and check_tableau_proof, which re-derives every α/β/γ/δ step of a recorded tableau with its own substitution and δ-freshness check. Formulas import/export to TPTP (incl. header Status/Rating metadata via parse_tptp_problem), Prover9, SMT-LIB, LaTeX, and JSON.
Full guide and API reference: [https://unicode-logic-kit.readthedocs.io/](https://unicode-logic-kit.readthedocs.io/)
The documentation walks through every logic with runnable examples — start with the Quickstart and Choosing a tool.
Beyond deciding formulas: Model checking (evaluate a formula in a structure you already have — including molecules), Verification (is a definition *set* coherent, or just too easily satisfied?), Probabilistic logic (exact bounds and queries, no sampling), and MCP (the toolkit, grammar included, as tools for a language model).
pip install unicode-logic-kit
Requires Python 3.10+. Z3 ships with the package. pip install "unicode-logic-kit[cvc5]" adds cvc5 as a second in-process SMT backend (it then joins the default proving chain right after Z3); [mcp] adds the MCP server (python -m unicode_logic_kit.mcp); [hf] add
Solo se muestra el principio; lee el resto en el repo