Graph of Skills MCP

Graph of Skills builds a dependency graph over SKILL.md files and serves the agent only the skills a task needs, through MCP

  • 227 ★ on the repository
  • Last commit
MCP server

Extended access

Why this level

  • Runs a Python server through uv and sends skill texts to an embeddings provider, with the key kept in `.env`
  • The `index_skills` and `add_skill` tools modify the graph and read skill directories on disk
All reasons and checks

davidliuk/graph-of-skills

Install

Manual install

claude mcp add graph-of-skills -- uv run --directory /path/to/graph-of-skills gos-claude

First `git clone https://github.com/davidliuk/graph-of-skills.git`, `uv sync` and `cp .env.example .env` with an embeddings key. For a ready graph add `--workspace data/gos_workspace/skills_200_v1`.

Access and checks

How we review

Extended accessThe tool runs code or makes network calls and only reads external data.

  • Runs a Python server through uv and sends skill texts to an embeddings provider, with the key kept in `.env`
  • The `index_skills` and `add_skill` tools modify the graph and read skill directories on disk

This is third-party code. Review the repository files before installing.

What it does

Graph of Skills (GoS) addresses large skill libraries: loading every `SKILL.md` into context runs out of room, and vector search does not know that one skill needs another. GoS builds a graph over the library ahead of time, with dependencies, workflow links and semantic edges, and at task time serves a small ranked set together with prerequisites and related skills. Retrieval runs in four steps. Candidates are taken by embeddings and by exact tokens, the lists are merged, the result is reranked by graph structure and a capped, agent-readable bundle is returned. The method was accepted at EMNLP 2026, and the repository holds SkillsBench evaluations and skill libraries for reproducing the results. For Claude Code the repository ships an MCP server, `gos-claude`. `.mcp.json` picks it up when the project is opened, or you register it with `claude mcp add graph-of-skills -- uv run --directory /path/to/graph-of-skills gos-claude`. The tools are `search_skills`, `retrieve_skill_bundle`, `hydrate_skills`, `list_skills`, `get_skill_detail`, `get_skill_neighbors`, `get_status`, plus `index_skills` and `add_skill` for building and extending the graph.

Who it is for. Researchers and developers with a library of hundreds of skills whose agent drowns in the list of available skills, and teams who want to reproduce the method from the paper.

Good fit when

  • The library holds hundreds of `SKILL.md` files and the agent cannot load them all into context
  • A skill for a task depends on other skills and you need the set with its prerequisites
  • The agent has to find skills for processing 3D mesh files: a `search_skills` query returns a ranked shortlist
  • You grow the library and want to add skills to an existing graph through `add_skill`
  • You need to check the method on SkillsBench with prebuilt workspaces

Not a fit when

  • The library has a dozen skills: plain loading without a graph is enough
  • You have no embeddings provider key (OpenAI, Gemini or compatible): the index cannot be built without one
  • You want a one-command install: the project installs by clone and `uv sync`, and the graph is downloaded or built separately

Example request

Use GoS to find skills for processing 3D mesh files, fetch their bundle with prerequisites and complete the task following their instructions

MCP

Transport
stdio
Authentication
key is optional

Environment variables

OPENAI_API_KEY secret
Embeddings provider key; OpenRouter uses `OPENROUTER_API_KEY`, the rest is in `.env.example`.

Limitations

  • Python 3.10–3.12, `uv` and an embeddings provider key (OpenAI, Gemini or compatible) set in `.env` are required.
  • Installation is a repository clone plus `uv sync`, and prebuilt workspaces are downloaded with `./scripts/download_data.sh --workspace`.
  • This is a research project: evaluation ran on SkillsBench, and the repository was last updated on 30 August 2026.
  • Building the graph calls models and spends provider tokens, and OpenRouter response caching is on by default.

How to disable. Run `claude mcp remove graph-of-skills`, and if the server was picked up through `.mcp.json`, delete that entry or close the project. The repository folder with workspaces is removed by hand.

FAQ

How do I connect Graph of Skills to Claude Code?

Clone the repository, run `uv sync`, fill in `.env` and download the workspaces. Then open the project in Claude Code (the server is picked up through `.mcp.json`) or register it with `claude mcp add graph-of-skills -- uv run --directory /path/to/graph-of-skills gos-claude`.

How is GoS different from vector skill search?

Vector search ranks skills by text similarity. GoS also uses the graph of dependencies and links, so it returns a skill together with its prerequisites and workflow neighbours.

Which MCP tools does GoS have?

`search_skills`, `retrieve_skill_bundle`, `hydrate_skills`, `list_skills`, `get_skill_detail`, `get_skill_neighbors`, `get_status`, `index_skills` and `add_skill`. The first ones search and load, the last ones build and extend the graph.

Where do I get a ready graph?

The workspaces and data are downloaded by `./scripts/download_data.sh --workspace`; the skill libraries and benchmark data are published on Hugging Face as DLPenn/graph-of-skills-data.

Which embeddings providers work?

OpenAI directly, OpenRouter, Gemini or any OpenAI-compatible provider. The model and dimension are set in `.env` with `GOS_EMBEDDING_MODEL` and `GOS_EMBEDDING_DIM`.

Discussion

No questions or reviews yet.

An MCP server with vector search: the agent describes a task and gets matching skills from the Anthropic and K-Dense collections

MCP serverExtended access411Repository stars

Meta Skill (ms)

Meta Skill

Meta Skill (ms) keeps skills locally in SQLite and Git, searches them with a hybrid index and serves agents over MCP

CLIExtended access210Repository stars

Local semantic search over 374 skills: the agent finds one by describing its task and reads the full text only after choosing.

MCP serverExtended access135Repository stars

Skill search from inside the conversation: the agent finds a SKILL.md, reads it and applies it with no prior install

MCP serverExtended access252Repository stars

A desktop app and CLI to install, sync and organize agent skills across Claude Code, Codex, Cursor and other tools

CLIExtended access7.3KRepository stars

A Go terminal UI for agent skills: list, check, update and find new ones in a single window

CLIExtended access336Repository stars

README in short

The README begins with authors, links to the EMNLP 2026 paper and an update timeline. It then explains the skill graph idea and the four-step retrieval pipeline, results on SkillsBench and on library sizes up to 2000 skills, installation and embedding provider setup. Working with Claude Code through the MCP plugin and the list of CLI commands are covered separately.

README badge

Report a problem

Foxx AIGraph of Skills
Foxx AI

I am Foxx AI and I have already vetted this tool. Ask about install, setup or anything else, and I will keep it simple.