Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
作者による説明(英語の原文)
Convert, validate, and inspect AI agent memories across formats
この3つを1つのスコアにまとめることはしません。意見、測定、人気はそれぞれ別のものだからです。
このサーバーのやさしい解説はまだ書いていません。以下はレジストリから読み取った事実です。
使っているAIアプリを選んで、設定をコピーしてください。
必要なもの
どのアプリを使っていますか?
上でアプリを選んでください。選んだアプリを覚えておくので、次からはボタンに「…にインストール」と表示されます。
Claude Desktop → Settings → Developer → Edit Config を開き、claude_desktop_config.json にこれを貼り付けます
{
"mcpServers": {
"mif-tools": {
"command": "uvx",
"args": [
"mif-tools"
]
}
}
}ターミナルでこれを実行します
claude mcp add mif-tools -- uvx mif-toolsプロジェクトの .cursor/mcp.json、または ~/.cursor/mcp.json に貼り付けます
{
"mcpServers": {
"mif-tools": {
"command": "uvx",
"args": [
"mif-tools"
]
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
プロジェクトの .vscode/mcp.json に貼り付けます
{
"servers": {
"mif-tools": {
"type": "stdio",
"command": "uvx",
"args": [
"mif-tools"
]
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
これはパソコンで動くサーバーですが、ChatGPTがつなげるのはインターネット上のサーバーだけです。ほかのアプリを選んでください。
選んだアプリは、この端末のCookieに保存されます。アカウントは不要です。
この設定は、作者のレジストリ登録情報から作成しています。READMEと違う場合は、READMEに従ってください。
パソコンで動くサーバーです。インストールすると、ツール一覧がAIアプリに表示されます。
誰でも見られる情報をチェックしており、コードは読んでいません。当てはまらない項目は数に入れていません。 · 2026年11月7日にチェック
レジストリ名は、リポジトリを所有するGitHubアカウント varun29ankuS で確認済みです
このリポジトリはまだGitHubから読み取っていません
このリポジトリはまだGitHubから読み取っていません
これはパソコンで動くため、インターネット上のエンドポイントはありません
パソコンで動き、代わりにローカルの設定を使います
パソコンで動くサーバーです。ツール一覧を読み取れるのは、インターネット上のエンドポイントがある場合だけです
レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。
当てはまる基本チェック1項目のうち1項目に合格しました。コードは読んでいません。キーやトークンを追加する前に、サーバーがどんなアクセスを求めているかを確認し、必要な権限だけを持つキーを使ってください。
レジストリには必須のキーは載っていません。ただし、最初に使うときにサインインを求めるサーバーもあります。
あなたのパソコンで動きます。必要なときにAIアプリが起動し、データは作者のサーバーを通りません(サーバー自体がオンラインサービスを呼び出す場合を除きます)。
GitHubリポジトリの最終更新は–、最新バージョン(0.2.1)がレジストリに届いたのは8 か月前です。
Claude Desktop、Claude Code、Cursor、VS CodeなどのMCP対応アプリで使えます。パソコンにPython (uv)も必要です。
同じカテゴリには:Spec Driven Development, Remote Desktop Commander, Systemdox
同じカテゴリで、ほかの作者が作ったサーバー。スターの多い順。
カードの見方:★ 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.
Your architecture in your agents' context: checks, specs, ADRs and docs over MCP, at write time.
作者のリポジトリから書かれたとおりにコピーしたものです。PopNx MCPは内容を確認・推奨していません。HTML、画像、スクリプトは取り除いています。リンクはこのサイトの外へ移動します。
Your AI agent has 6 months of memories in System A. You want to try System B. Without MIF, you lose everything. With MIF:
pip install mif-tools
mif convert mem0_export.json --to shodh -o memories.mif.json
Done. Your memories are portable.
A vendor-neutral JSON envelope for AI agent memories. Like vCard for contacts or iCalendar for events — a minimal schema so memories move between providers without data loss.
3 required fields. That's it.
{
"mif_version": "2.0", "memories": [ { "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890", "content": "User prefers dark mode across all applications", "created_at": "2026-01-15T10:30:00Z" } ] }
Everything else — memory types, tags, entities, embeddings, knowledge graph, vendor extensions — is optional. Add what you have, ignore what you don't.
# Python
pip install mif-tools # core (zero dependencies) pip install mif-tools[validate] # with JSON Schema validation pip install mif-tools[mcp] # with MCP server
npm install @varunshodh/mif-tools
# mem0 → MIF
mif convert mem0_export.json --from mem0 -o memories.mif.json
mif convert memories.mif.json --to markdown -o memories.md
mif convert any_memory_file.json -o output.mif.json
mif inspect memories.json
mif validate memories.mif.json
from mif import load, dump, convert, MifDocument, Memory
doc = load(open("mem0_export.json").read()) print(f"{len(doc.memories)} memories loaded")
markdown = convert(data, from_format="mem0", to_format="markdown")
doc = MifDocument(memories=[ Memory( id="123e4567-e89b-12d3-a456-426614174000", content="User prefers dark mode", created_at="2026-01-15T10:30:00Z", memory_type="observation", tags=["preferences", "ui"], ) ]) print(dump(doc)) # MIF v2 JSON
from mif import validate_deep ok, warnings = validate_deep(open("export.mif.json").read())
from mif import load, dump
def export_memories(user_id: str) -> str: memories = my_storage.get_all(user_id) return dump(memories)
def import_memories(data: str) -> dict: doc = load(data) for mem in doc.memories: my_storage.save(mem.id, mem.content, mem.created_at) return {"memories_imported": len(doc.memories)}
| Format | ID | Auto-detect | Description |
|---|---|---|---|
| MIF v2 | shodh | "mif_version" in JSON | Native format, lossless round-trip |
| mem0 | mem0 | JSON array with "memory" field | mem0 memory exports |
| CrewAI | crewai | JSON array with "task_description" | CrewAI LTMSQLiteStorage exports |
| LangChain | langchain | JSON array with "namespace" + "value" | LangChain/LangMem Item format |
| Generic JSON | generic | JSON array with "content" field | Any JSON memory array |
| Markdown | markdown | Starts with --- | YAML frontmatter (Letta/Obsidian style) |
MIF supports optional fields for rich memory data:
observation, decision, learning, error, context, conversation, and custom typesFull specification: spec/mif-v2.md | JSON Schema: schema/mif-v2.schema.json
Expose MIF tools to any MCP-compatible AI client:
pip install mif-tools[mcp]
mif mcp
Tools: export_memories, import_memories, validate_memories, inspect_memories, list_formats
| System | Status | Type |
|---|---|---|
| shodh-memory | Production | Built-in HTTP API (/api/export/mif, /api/import/mif) |
| mif-tools (PyPI) | Production | Python package with CLI + MCP server |
| @varunshodh/mif-tools (npm) | Production | TypeScript/Node.js package with CLI |
| mem0 | Adapter ready | Python + npm |
| CrewAI | Adapter ready | Python + npm |
| LangChain | Adapter ready | Python + npm |
| Generic JSON | Adapter ready | Python + npm |
| Markdown (YAML frontmatter) | Adapter ready | Python + npm |
We welcome adapter implementations for any memory system. See CONTRIBUTING.md.
Apache 2.0