GitHub
Connect AI assistants to GitHub - manage repos, issues, PRs, and workflows through natural language.
제작자가 쓴 설명(영어 원문)
One shared, durable memory for your AI coding agents — local-first, zero-dependency.
이 세 가지는 절대 하나의 점수로 합치지 않아요. 의견, 측정, 인기는 서로 다른 것이니까요.
이 서버는 아직 쉬운 말로 된 요약을 쓰지 못했어요. 아래는 레지스트리에서 읽어 온 사실이에요.
쓰고 있는 AI 앱을 고른 다음 설정을 복사하세요.
YGG_ENGINE_URL, YGG_ENGINE_TOKEN비밀로 표시된 값은 내 계정의 열쇠예요. 절대 다른 사람과 공유하거나 채팅에 붙여 넣지 마세요.
필요한 것
어떤 앱을 쓰세요?
위에서 앱을 고르세요. 기억해 두었다가 다음부터는 버튼에 “…에 설치”라고 표시해요.
Claude Desktop → Settings → Developer → Edit Config를 열고 claude_desktop_config.json에 이 내용을 붙여 넣으세요
{
"mcpServers": {
"yggdrasil": {
"command": "uvx",
"args": [
"yggdrasil-memory",
"mcp"
],
"env": {
"YGG_ENGINE_URL": "your-value",
"YGG_ENGINE_TOKEN": "your-value"
}
}
}
}터미널에서 이 명령어를 실행하세요
claude mcp add yggdrasil --env YGG_ENGINE_URL=your-value --env YGG_ENGINE_TOKEN=your-value -- uvx yggdrasil-memory mcp실행하기 전에 빈 값을 채워 주세요.
프로젝트의 .cursor/mcp.json 또는 ~/.cursor/mcp.json에 붙여 넣으세요
{
"mcpServers": {
"yggdrasil": {
"command": "uvx",
"args": [
"yggdrasil-memory",
"mcp"
],
"env": {
"YGG_ENGINE_URL": "your-value",
"YGG_ENGINE_TOKEN": "your-value"
}
}
}
}브라우저가 앱을 열지 물어본 다음, 앱이 설정을 보여 주고 확인을 요청해요. 키 값은 비워 두니 직접 입력하세요.
프로젝트의 .vscode/mcp.json에 붙여 넣으세요
{
"servers": {
"yggdrasil": {
"type": "stdio",
"command": "uvx",
"args": [
"yggdrasil-memory",
"mcp"
],
"env": {
"YGG_ENGINE_URL": "your-value",
"YGG_ENGINE_TOKEN": "your-value"
}
}
}
}브라우저가 앱을 열지 물어본 다음, 앱이 설정을 보여 주고 확인을 요청해요. 키 값은 비워 두니 직접 입력하세요.
이 서버는 내 컴퓨터에서 실행되는데, ChatGPT는 인터넷에 있는 서버에만 연결할 수 있어요. 다른 앱을 고르세요.
선택한 앱은 이 기기의 쿠키에만 저장돼요. 계정은 필요 없어요.
YGG_ENGINE_URL env이 설정은 제작자의 레지스트리 정보로 만들었어요. README와 다르면 README를 따르세요.
내 컴퓨터에서 실행돼요. 설치하면 AI 앱에 도구 목록이 나타나요.
누구나 볼 수 있는 정보를 점검했고, 코드는 읽지 않았어요. 해당하지 않는 항목은 개수에서 뺐어요. · 2026년 11월 9일 점검
레지스트리 이름이 GitHub 계정 VonderVuflya 기준으로 확인되었고, 이 계정이 저장소를 소유하고 있어요
아직 GitHub에서 이 저장소를 읽어 오지 않았어요
아직 GitHub에서 이 저장소를 읽어 오지 않았어요
내 컴퓨터에서 실행되는 서버라 인터넷 엔드포인트가 없어요
내 컴퓨터에서 실행되며, 대신 로컬 설정을 사용해요
내 컴퓨터에서 실행돼요. 도구 목록은 인터넷 엔드포인트가 있는 서버에서만 읽을 수 있어요
레지스트리에서 이 카테고리의 활성 서버 전체와 비교했어요. 스타는 게시자가 저장소를 소유한 경우에만 세요.
해당하는 기본 점검 1개 중 1개를 통과했어요. 코드는 읽지 않았어요. 키나 토큰을 넣기 전에 서버가 어떤 권한을 요구하는지 확인하고, 꼭 필요한 권한만 있는 키를 쓰세요.
입력해야 할 값: YGG_ENGINE_TOKEN
내 컴퓨터에서 실행돼요. AI 앱이 필요할 때 실행하고, 데이터는 제작자의 서버를 거치지 않아요(서버 자체가 온라인 서비스를 호출하는 경우는 제외).
GitHub 저장소는 마지막으로 – 변경됐고, 최신 버전(0.16.0)은 17일 전 레지스트리에 올라왔어요.
Claude Desktop, Claude Code, Cursor, VS Code처럼 MCP를 지원하는 앱에서 쓸 수 있어요. 내 컴퓨터에 Python (uv)도 있어야 해요.
같은 카테고리에는: GitHub, Desktop Commander, Cloudflare MCP
같은 카테고리에서 다른 제작자가 만든 서버예요. 스타 순으로 정렬했어요.
카드 보는 법:↓ 주간 다운로드i★ GitHub 스타i세 기둥: 리뷰 · 점검 · 사용 정도i업데이트 = 최신 버전을 레지스트리에 공개한 날i
Connect AI assistants to GitHub - manage repos, issues, PRs, and workflows through natural language.
MCP server for terminal commands, file operations, and process management
제작자의 저장소에서 쓰인 그대로 가져왔어요. PopNx MCP가 검토하거나 보증한 내용이 아니에요. HTML, 이미지, 스크립트는 제거했어요. 링크를 누르면 이 사이트를 벗어나요.
🌳 Yggdrasil
Stop re-explaining your project to every new AI session.
One local memory for Claude Code, Codex, and every MCP agent — shared across sessions, tools, and projects. Zero dependencies. Nothing leaves your machine.
Install · How it works · Numbers · Compare · FAQ
Read this in: Русский · 简体中文 · Español · Français · 日本語 · Deutsch
Every new chat, your AI forgets. You re-explain the project, the decisions, the gotchas — every time, in every tool. Yggdrasil is a tiny always-on memory that any agent plugs into. Open a new session, in any project, with any AI, and it already knows what you decided, what broke, and what's still open.
$ cd ~/projects/checkout-api && claude # a brand-new session
🌳 Yggdrasil (injected automatically at session start) • [project_status] payments refactor: idempotency keys added; open: e2e tests • [lesson] webhook 401 → signing secret rotated; update env + redeploy
"have I solved a flaky websocket reconnect anywhere before?"
🌳 recall → found in project realtime-dash: refresh the token *before* opening the socket, then retry with capped backoff.
No "let me remind you what we did yesterday." It's just there.
Two commands, inside Claude Code (the plugin launches via uv):
/plugin marketplace add VonderVuflya/Yggdrasil
/plugin install yggdrasil
The engine lazy-starts on first use and generates its own local token — no API key, no cloud, nothing to configure. Codex and Cursor use the same flow.
All other channels — CLI daemon, Homebrew, npm, Claude Desktop, from source…
| Host / tool | Command |
|---|---|
| uvx _(recommended CLI)_ | uvx --from yggdrasil-memory ygg install |
| npm / npx | npx yggdrasil-memory install |
| pipx | pipx install yggdrasil-memory && ygg install |
| pip | pip install yggdrasil-memory && ygg install |
| Homebrew _(macOS)_ | brew install VonderVuflya/tap/yggdrasil && ygg install |
| Claude Desktop _(app)_ | drag the .mcpb from the latest release onto Settings → Extensions, paste your token (ygg token) — the desktop app then shares the same memory as your CLI agents (guide) |
| from source | uvx --from git+https://github.com/VonderVuflya/yggdrasil.git ygg install |
ygg install is a one-time guided setup: it installs an always-on background service, registers the MCP tools with every agent host it finds — Claude Code, Codex, OpenCode — and, if your hardware allows, recommends optional local models (or pick none to stay zero-config).
OpenCode — nothing to configure
Install OpenCode first, then run ygg install (or ygg redeploy if Yggdrasil is already set up) — the entry is written for you and merged into any existing opencode.json. Confirm with:
opencode mcp list # -> ✓ yggdrasil connected
Installed OpenCode *after* Yggdrasil? Just re-run ygg install.
If you'd rather write it by hand, note that OpenCode's schema differs from Claude's in four places at once — servers live under mcp (not mcpServers), type is required, command is one array (not command + args), and env is environment (not env), so the Claude snippet won't port:
// ~/.config/opencode/opencode.json
{ "$schema": "https://opencode.ai/config.json", "mcp": { "yggdrasil": { "type": "local", "command": ["/path/to/python3", "~/.yggdrasil/scripts/ygg_mcp_server.py"], "enabled": true, "environment": { "YGG_ENGINE_URL": "http://127.0.0.1:42069" } } } }
No token goes in the config — the engine reads the 0600 ~/.yggdrasil/token itself. Run ygg doctor if the tools don't show up.
There is also a yggdrasil-memory skill for any Claude surface: MCP connects the *tools*, the skill teaches the agent *when* to use them. Use both for the best behavior.
Try it with nothing installed and a throwaway DB: uvx --from yggdrasil-memory ygg serve --reset --db /tmp/ygg.sqlite.
Then just work: ask your agent *"recall what we decided about this project"*, tell it *"remember this decision"* — next session it's already there. Verify the install any time with ygg doctor.
Already have history? Seed memory from your existing Claude Code + Codex transcripts, Obsidian vaults, and CLAUDE.md repos — distilled locally:
ygg seed --dry-run # see what it would import; drop the flag to distill for real
Leaving another memory tool? ygg import --from mcp-memory --path memory.json pulls its whole store into Yggdrasil (deduped, secret-guarded) — then you can delete it.
Yggdrasil is memory + tools — the *intelligence* is your LLM. It just makes sure the right memory is in front of the right agent at the right moment.
ygg_search, ygg_recall, ygg_remember …).Out of the box, Yggdrasil runs on SQLite + FTS5 with zero dependencies — instant keyword search, no models, nothing to download. Optional local models add two independent tiers:
| Tier | You add | You gain |
|---|---|---|
| 0 · default | nothing — SQLite + FTS5 | keyword search, zero deps, instant — recall@1 = 0.77 |
| 1 · semantic | an embedding model (all-minilm 45 MB · paraphrase-multilingual ~560 MB) | search by meaning, across languages — recall@1 = 0.94, recall@3 1.00 |
| 2 · self-maintaining | a small LLM (qwen2.5:1.5b ~1 GB) | background dedupe/merge of memory (propose-only) |
The runtime only *computes* vectors and runs the background model — every memory and every vector stays in the same local SQLite.
ygg install scans for Ollama, LM Studio and llama.cpp, offers to start whichever is installed but idle, and then shows one menu per job with green for models you already have and red for models it would download. Pick a row, and it writes embed_backend, embed_url and distill_url for you — including the part nobody guesses right, that embed_url wants the /v1 base while distill_url wants the host root. A runtime on another machine is one URL: paste it and the dialect is detected. ygg recommend shows the same scan plus the full catalog without changing anything.
Full model menu
Embeddings (semantic search):
| Model | Size | Good for |
|---|---|---|
all-minilm | 45 MB | English, tiny & fast |
nomic-embed-text | 274 MB | English, better quality (768d) |
mxbai-embed-large | 670 MB | English, high quality (1024d) |
paraphrase-multilingual | ~560 MB | multilingual (EN/RU + 50 langs, 768d) |
bge-m3 | 1.2 GB | multilingual, top quality (heavier) |
Embedding backend — Ollama by default. ygg install sets all of this for you once you pick a runtime; the manual route below is for scripted setups and for changing one thing later. To use an OpenAI-compatible /v1/embeddings server instead (llama.cpp's llama-server --embeddings, OpenRouter, LM Studio, vLLM), set embed_backend:
# local llama.cpp — no key needed
ygg config set embed_backend openai ygg config set embed_url http://127.0.0.1:8080/v1 ygg config set embed_model bge-small-en-v1.5 ygg redeploy
ygg config set embed_backend openai ygg config set embed_url https://openrouter.ai/api/v1 ygg config set embed_model nvidia/llama-nemotron-embed-vl-1b-v2:free ygg config set embed_api_key sk-or-... # or export YGG_EMBED_API_KEY ygg redeploy
The key is stored in ~/.yggdrasil/embed_api_key (0600) rather than config.json, and reaches the daemon as a file path — so it never shows up in ps, the launchd plist or the systemd unit. ygg config list masks it.
Check it took with ygg doctor — dense should name your model:
✓ dense active (nvidia/llama-nemotron-embed-vl-1b-v2:free)
Wiring LM Studio or OpenRouter by hand? The gotchas (two URL shapes, model ids, JIT loading, inference vs provisioning keys, privacy filters) are in docs/model-backends.md.
Staying local still wins on quality *and* privacy: on the 232-memory / 110-query corpus, local paraphrase-multilingual scores recall@1 0.964 vs 0.946 for the free hosted model — and your memories never leave the machine. Reach for a hosted backend when the box can't run Ollama, not to chase accuracy.
Bigger vectors do not buy accuracy here — on the same corpus mxbai-embed-large (1024d) scores 0.809 and nomic-embed-text (768d) 0.818, a difference their confidence intervals swallow whole. What actually moves the number is whether the model handles *your* languages: both are English-only and collapse to 0.40–0.45 on cross-language queries, where the multilingual default holds 0.95.
Background consolidation (small LLM):
| Mo
앞부분만 보여 드려요. 나머지는 저장소에서 읽어 보세요