Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
作者による説明(英語の原文)
Parse, check, prove and translate logic formulas: first-order, modal, description, higher-order.
この3つを1つのスコアにまとめることはしません。意見、測定、人気はそれぞれ別のものだからです。
このサーバーのやさしい解説はまだ書いていません。以下はレジストリから読み取った事実です。
使っているAIアプリを選んで、設定をコピーしてください。
必要なもの
どのアプリを使っていますか?
上でアプリを選んでください。選んだアプリを覚えておくので、次からはボタンに「…にインストール」と表示されます。
Claude Desktop → Settings → Developer → Edit Config を開き、claude_desktop_config.json にこれを貼り付けます
{
"mcpServers": {
"unicode-logic-kit": {
"command": "uvx",
"args": [
"unicode-logic-kit",
"mcp"
]
}
}
}ターミナルでこれを実行します
claude mcp add unicode-logic-kit -- uvx unicode-logic-kit mcpプロジェクトの .cursor/mcp.json、または ~/.cursor/mcp.json に貼り付けます
{
"mcpServers": {
"unicode-logic-kit": {
"command": "uvx",
"args": [
"unicode-logic-kit",
"mcp"
]
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
プロジェクトの .vscode/mcp.json に貼り付けます
{
"servers": {
"unicode-logic-kit": {
"type": "stdio",
"command": "uvx",
"args": [
"unicode-logic-kit",
"mcp"
]
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
これはパソコンで動くサーバーですが、ChatGPTがつなげるのはインターネット上のサーバーだけです。ほかのアプリを選んでください。
選んだアプリは、この端末のCookieに保存されます。アカウントは不要です。
この設定は、作者のレジストリ登録情報から作成しています。READMEと違う場合は、READMEに従ってください。
パソコンで動くサーバーです。インストールすると、ツール一覧がAIアプリに表示されます。
誰でも見られる情報をチェックしており、コードは読んでいません。当てはまらない項目は数に入れていません。 · 2026年11月6日にチェック
レジストリ名は、リポジトリを所有するGitHubアカウント fvossel で確認済みです
このリポジトリはまだGitHubから読み取っていません
このリポジトリはまだGitHubから読み取っていません
これはパソコンで動くため、インターネット上のエンドポイントはありません
パソコンで動き、代わりにローカルの設定を使います
パソコンで動くサーバーです。ツール一覧を読み取れるのは、インターネット上のエンドポイントがある場合だけです
レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。
当てはまる基本チェック1項目のうち1項目に合格しました。コードは読んでいません。キーやトークンを追加する前に、サーバーがどんなアクセスを求めているかを確認し、必要な権限だけを持つキーを使ってください。
レジストリには必須のキーは載っていません。ただし、最初に使うときにサインインを求めるサーバーもあります。
あなたのパソコンで動きます。必要なときにAIアプリが起動し、データは作者のサーバーを通りません(サーバー自体がオンラインサービスを呼び出す場合を除きます)。
GitHubリポジトリの最終更新は–、最新バージョン(0.35.0)がレジストリに届いたのは11 日前です。
Claude Desktop、Claude Code、Cursor、VS CodeなどのMCP対応アプリで使えます。パソコンにPython (uv)も必要です。
同じカテゴリには:Spec Driven Development, Remote Desktop Commander, Recta
同じカテゴリで、ほかの作者が作ったサーバー。スターの多い順。
カードの見方:★ GitHubスターi3つの柱:レビュー · チェック · 利用状況i更新=最新バージョンをレジストリに公開した日i
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.
Cheaper cross-chain stablecoin routes for AI agents; 5 % of the verified saving, nothing if none.
作者のリポジトリから書かれたとおりにコピーしたものです。PopNx MCPは内容を確認・推奨していません。HTML、画像、スクリプトは取り除いています。リンクはこのサイトの外へ移動します。
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
冒頭だけを表示しています。続きはリポジトリで読めます