MCP Server Builder
anthropics/skills
Guides the design and implementation of Model Context Protocol servers in TypeScript or Python, from tool naming and error messages to evaluation.
Migrate an existing agentic PoC/pilot (Claude Code project files, MCP configs, hooks, local tools, openclaw config, or similar hand-rolled setup artifacts) into an Archestra instance.
$ npx skills add archestra-ai/archestra --skill migrate-to-archestra -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install archestra-ai/archestra migrate-to-archestra --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/archestra-ai/archestra.git skills-src && mkdir -p .claude/skills && cp -r skills-src/migration-kit .claude/skills/migrate-to-archestra && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "migrate-to-archestra" agent skill from https://github.com/archestra-ai/archestra/tree/main/migration-kit into .claude/skills/migrate-to-archestra/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "migrate-to-archestra", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/archestra-ai/archestra/tree/main/migration-kitType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add archestra-ai/archestra --skill migrate-to-archestra -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install archestra-ai/archestra migrate-to-archestra --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/archestra-ai/archestra.git skills-src && mkdir -p .agents/skills && cp -r skills-src/migration-kit .agents/skills/migrate-to-archestra && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "migrate-to-archestra" agent skill from https://github.com/archestra-ai/archestra/tree/main/migration-kit into .agents/skills/migrate-to-archestra/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "migrate-to-archestra", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add archestra-ai/archestra --skill migrate-to-archestra -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install archestra-ai/archestra migrate-to-archestra --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/archestra-ai/archestra.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/migration-kit .cursor/skills/migrate-to-archestra && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "migrate-to-archestra" agent skill from https://github.com/archestra-ai/archestra/tree/main/migration-kit into .cursor/skills/migrate-to-archestra/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "migrate-to-archestra", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/archestra-ai/archestra.git --path migration-kit--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add archestra-ai/archestra --skill migrate-to-archestra -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install archestra-ai/archestra migrate-to-archestra --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/archestra-ai/archestra.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/migration-kit .gemini/skills/migrate-to-archestra && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "migrate-to-archestra" agent skill from https://github.com/archestra-ai/archestra/tree/main/migration-kit into .gemini/skills/migrate-to-archestra/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "migrate-to-archestra", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install archestra-ai/archestra migrate-to-archestraInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add archestra-ai/archestra --skill migrate-to-archestra -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/archestra-ai/archestra.git skills-src && mkdir -p .github/skills && cp -r skills-src/migration-kit .github/skills/migrate-to-archestra && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "migrate-to-archestra" agent skill from https://github.com/archestra-ai/archestra/tree/main/migration-kit into .github/skills/migrate-to-archestra/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "migrate-to-archestra", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add archestra-ai/archestra --skill migrate-to-archestra -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install archestra-ai/archestra migrate-to-archestra --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/archestra-ai/archestra.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/migration-kit .opencode/skills/migrate-to-archestra && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "migrate-to-archestra" agent skill from https://github.com/archestra-ai/archestra/tree/main/migration-kit into .opencode/skills/migrate-to-archestra/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "migrate-to-archestra", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
migrate-to-archestraMigrate an existing agentic PoC/pilot (Claude Code project files, MCP configs, hooks, local tools, openclaw config, or similar hand-rolled setup artifacts) into an Archestra instance.
Migrate To Archestra is an agent skill from archestra-ai/archestra. Migrate an existing agentic PoC/pilot (Claude Code project files, MCP configs, hooks, local tools, openclaw config, or similar hand-rolled setup artifacts) into an Archestra instance. Use when the user wants to move, port, or convert an existing agentic setup into an Archestra pilot.
Its SKILL.md is about 2.5k tokens, which your agent loads only when the skill is triggered. The skill folder holds 46 other files, including scripts and reference files (for example `README.md`, `install.py` and `references/archestra-api.md`).
It sits in Agent Workflows, covering MCP servers. It works with Model Context Protocol and Python. The repository describes itself as: Enterprise AI Platform with guardrails, MCP registry, gateway & orchestrator. The licence is Apache-2.0.
5 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit aa7ab51. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Ships 5 files in scripts/ (Python, from the files we listed), which the agent can run.
Shell commands in SKILL.md call:
python3uvpipFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use uv and pip, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names these keys or tokens, usually read from environment variables:
ARCHESTRA_API_KEYFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Migrate To Archestra loads about 2.5k tokens when it runs, and up to ~8.2k if it reads all its reference files. Until then it costs about 76 tokens; SKILL.md has 1,112 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.
The full file from archestra-ai/archestra at commit aa7ab51, republished under its Apache-2.0 licence (© archestra-ai). 1,112 words, ~2,538 tokens.
.claude/skills/migrate-to-archestra/SKILL.md (or your agent's skills folder). This skill also uses 41 other files; get the full folder from GitHub.You migrate a user's existing agentic PoC or pilot into Archestra. The skill itself runs in Claude Code, but the source setup may be a messy mix of Claude Code-style files, MCP config, local scripts, hooks, openclaw config, and other pilot artifacts. The mechanical, deterministic work lives in bundled Python helpers; you own the product judgment: mapping decisions, asking the user where ambiguous, getting approval on a preview, and writing the final report.
$SKILL_DIR below is the directory containing this file. The helpers are at $SKILL_DIR/scripts/.
They are zero-dependency and target Python ≥3.10, so on a stock interpreter (no uv, no
pip install, no network) python3 "$SKILL_DIR/scripts/<x>.py" just works — important for locked-down
or air-gapped enterprise hosts. uv run "$SKILL_DIR/scripts/<x>.py" also works if uv is present; the
examples below use python3 since it needs nothing installed.
The spine — three JSON artifacts, with you applying judgment in the middle:
discover.py → inventory.json → [you map + ask the user] → migration_plan.json → apply.py → migration_result.json → [you write report.md]
deterministic judgment deterministicRead references/entity-mapping.md before mapping, references/archestra-api.md for payload facts,
references/install.md for connecting/installing, and references/report-template.md before writing
the report. Do them as you reach each step, not all upfront.
Ask whether the user has an existing instance or wants a local docker one. Follow
references/install.md. End state: you have a reachable base_url, you've called wait_ready(),
and you've minted an API key. Export for later steps:
export ARCHESTRA_BASE_URL=<base_url>
export ARCHESTRA_API_KEY=<minted key>wait_ready() is the real gate that you're connected; GET $ARCHESTRA_BASE_URL/openapi.json is
also available if you want to sanity-check the API surface.
Ask for the source directory (default: the current working directory). Run:
python3 "$SKILL_DIR/scripts/discover.py" <source_dir> --out inventory.jsonThis emits a secret-redacted inventory (it never writes credentials to the file). Read
inventory.json. For items you'll map, skim the relevant bodies. Note anything in unknowns — that
includes any frontmatter line the parser refused to interpret (it supports key: value scalars,
inline [a, b] lists, and - item block lists; block scalars |/>, nested maps, anchors, and
comments are reported here rather than guessed, so read the raw file for those rare cases).
After reading the inventory, summarize it in product terms before mapping:
tools/*.py into one toolset
skill before applying (entity-mapping.md, "Local tools");entity-mapping.md).Using references/entity-mapping.md, turn the inventory into migration_plan.json:
{ "schema_version": 1, "default_scope": "personal",
"decisions": [ { "source_id": "<inventory id>", "action": "migrate|skip|manual",
"target_kind": "agent|skill|mcp_catalog|mcp_install|llm_key|hook",
"scope": "personal", "name_override": null, "notes": "...",
"user_answers": { } } ] }You author decisions only — never raw API payloads; apply.py builds and validates those.
target_kind is required for migrate decisions (it drives the build); a skip/manual decision
may omit it.
Use AskUserQuestion only for genuine ambiguities, e.g.:
personal/team/org), plus any per-item exceptions;team scope, which concrete Archestra team ids should own it. Give them in
user_answers: as teamIds (a list) for agents, skills, and MCP catalog items; as teamId (a
single id, or the lone value from teamIds) for MCP installs and LLM keys. apply.py maps each to
the correct API field. Otherwise use personal or org scope. A team-scoped decision with no team
id is invalid and apply.py will not touch the network;skill (default) or a full agent;mcp_install) or just register the catalog item
(installing a local stdio server spins a K8s pod). If you emit both a mcp_catalog and a
mcp_install decision for one server, give them the same name/name_override — the install
resolves its catalog item by name. apply.py attaches installs to the primary agent by
default; use user_answers.agentIds only for extra explicit agent assignments;user_answers.apiKey
(with provider). Never read a secret out of their files.entity-mapping.md:SessionStart/PreToolUse/PostToolUse) and data.source ≠ unresolved → hook
(the default; a native lifecycle hook). Usually no user_answers needed — apply.py bundles the
script, carries PEP-723 requirements, and attaches it to the primary agent. Optional user_answers:
agentId (UUID), fileName (override), requirements (override; a .sh hook must have none);data.source == "unresolved" → action:"manual" with a notes explanation.
Surface the behavior differences (no matcher, Archestra tool names, sandbox cwd, dropped env/argv).Mark openclaw as action:"manual" with a notes explanation. Do the same for telemetry (OTEL env,
observability hooks/scripts): map it to manual and, per entity-mapping.md, point the user at
Archestra's native telemetry instead of migrating it.
Before previewing, do a reference-rewrite pass: read each migrating skill/command/subagent/hook body
and surgically fix paths and shell invocations that assumed the source machine — project-relative or
$CLAUDE_PROJECT_DIR paths, host-only binaries/flags, inline env — so they resolve in the sandbox
(apply.py ships bodies verbatim). See entity-mapping.md, "Rewrite environment-specific references".
List anything you can't safely rewrite as a manual follow-up.
Always show the user a concise preview and get explicit approval before applying. Use this shape:
## Migration Preview
Ready to create
| Source | Archestra target | Scope | Notes |
| --- | --- | --- | --- |
Needs your decision
| Source | Choice | Recommendation |
| --- | --- | --- |
Manual after migration
| Source | Why manual | Follow-up |
| --- | --- | --- |
Sandbox rewrites applied
- <source body → path/shell reference rewritten for the sandbox, or "none">
Behavior changes to expect
- <only list differences that apply>
Secrets/safety notes
- <redactions and warnings, never secret values>Keep the preview short enough for a pilot owner to approve. Do not show raw API payloads unless the user asks.
Dry-run first (offline; builds + validates every payload, touches no network):
python3 "$SKILL_DIR/scripts/apply.py" --inventory inventory.json --plan migration_plan.json --dry-runFix any invalid ops (they print the validation error), then apply for real:
python3 "$SKILL_DIR/scripts/apply.py" --inventory inventory.json --plan migration_plan.json --out migration_result.jsonapply.py is idempotent (skips entities that already exist), records each op's real outcome, calls
enable-defaults so the primary agent sees the skills, and best-effort assigns sandbox tools
(run_command, upload_file, download_file) to migrated agents. Sandbox assignment failures are
non-blocking warnings because some Archestra installs do not enable the sandbox runtime yet. The script
exits non-zero if any op failed/was invalid.
From migration_result.json, write report.md using references/report-template.md. The report is
for deciding whether the converted pilot is ready to try in Archestra, not for producing an exhaustive
command transcript. For hooks migrated as native lifecycle hooks, note
the behavior differences (no matcher, Archestra tool names, sandbox cwd, dropped env/argv), and whether
the agent-hooks feature is on: apply.py records a warning op when it is off, in which case migrated
hooks are saved but never fire until an admin enables it.
Also surface any warnings from the inventory (possible secrets left intact in migrated bodies). Summarize for the
user what migrated, what to test first, and what still needs hands-on work.
The shipped scripts are zero-dependency; the lines below are only for developing/testing them.
Dev deps (pytest, pyyaml, ty, ruff) are pinned in pyproject.toml under the dev group.
cd "$SKILL_DIR"
uv run --group dev python -m pytest tests/ -q # tests (incl. the ty + ruff gates)
uv run --group dev ty check # Astral type checker, the typing gate
uv run --group dev ruff check # Astral linterty is the enforced typing gate (it matches an Astral dev loop). It is a young checker, so a few
validation helpers carry explicit casts where it cannot yet narrow a membership check — mypy would
consider those redundant, which is why mypy is not the gate.
© archestra-ai, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 41 other files (scripts, references) in migration-kit of archestra-ai/archestra.
Open the folder on GitHubat commit aa7ab51
Migrate To Archestra next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Migrate To Archestra this skillarchestra-ai/archestra | 4.4k | — | ~2.5k | Automated safety check: Pass | Apache-2.0 | |
| MCP Server Builderanthropics/skills | 180k | 63 repos | ~2.3k | Automated safety check: Pass | Apache-2.0 | |
| MCP Server BuildershareAI-lab/learn-claude-code | 78k | 4 repos | ~1.2k | Automated safety check: Pass | MIT | |
| MemPalace Setup and OperationMemPalace/mempalace | 59k | — | ~2.2k | Automated safety check: Pass | MIT | |
| FastmcpTommy-yw/RunbookHermes | 546 | 3 repos | ~2.1k | Automated safety check: Pass | MIT | |
| Fastmcp Client CLIPrefectHQ/fastmcp | 28k | — | ~823 | Automated safety check: Pass | Apache-2.0 |
anthropics/skills
Guides the design and implementation of Model Context Protocol servers in TypeScript or Python, from tool naming and error messages to evaluation.
shareAI-lab/learn-claude-code
Walks through building MCP servers in Python or TypeScript that expose tools, resources and prompts to Claude, with templates, registration and testing.
MemPalace/mempalace
Installs and configures MemPalace as a private local palace, a shared-brain hub or a client of an existing hub, including MCP registration and version-correct initialization.
Tommy-yw/RunbookHermes
Build, test, inspect, install, and deploy MCP servers with FastMCP in Python.
PrefectHQ/fastmcp
Query and invoke tools on MCP servers using fastmcp list and fastmcp call.
ArcadeAI/arcade-mcp
Build new Arcade error adapters from scratch using public Arcade TDK patterns.
archestra-ai/archestra
A skill your agent uses for test selection and quality across backend, frontend, and e2e; load its backend reference for Vitest projects, mocking, DB fixtures, and performance.
archestra-ai/archestra
A skill your agent uses when adding or changing Archestra backend routes, models, services, API request/response schemas, endpoint permissions, or OpenAPI/codegen for the generated API client.
archestra-ai/archestra
A skill your agent uses when writing, debugging, or running Archestra Playwright e2e tests, API/UI fixtures, WireMock-backed tests, local/CI e2e setup, or test selectors.
archestra-ai/archestra
A skill your agent uses when modifying Archestra frontend Next.js/React code, UI components, forms, TanStack Query hooks, generated API client usage, frontend copy, or documentation links.
archestra-ai/archestra
A skill your agent uses when adding an LLM provider, changing proxy adapters or provider routes, fixing streaming/tool-call translation bugs, editing model fetchers or model handling, or touching…
archestra-ai/archestra
A skill your agent uses when changing Drizzle schemas, generating migrations, editing migration SQL, creating data-only migrations, diagnosing drizzle-kit check failures, or resolving…
Works with
Categories
Migrate an existing agentic PoC/pilot (Claude Code project files, MCP configs, hooks, local tools, openclaw config, or similar hand-rolled setup artifacts) into an Archestra instance. Migrate To Archestra is an agent skill from archestra-ai/archestra. Migrate an existing agentic PoC/pilot (Claude Code project files, MCP configs, hooks, local tools, openclaw config, or similar hand-rolled setup artifacts) into an Archestra instance.
Migrate To Archestra fits situations like: the user wants to move; convert an existing agentic setup into an Archestra pilot.
Run `npx skills add archestra-ai/archestra --skill migrate-to-archestra -a claude-code`. Or copy the skill folder (migration-kit in archestra-ai/archestra) into .claude/skills/migrate-to-archestra in your project. Claude Code loads it when a task matches its description.
Run `npx skills add archestra-ai/archestra --skill migrate-to-archestra -a codex`. Or copy the skill folder (migration-kit in archestra-ai/archestra) into .agents/skills/migrate-to-archestra in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add archestra-ai/archestra --skill migrate-to-archestra -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/migrate-to-archestra, .gemini/skills/migrate-to-archestra, .github/skills/migrate-to-archestra and .opencode/skills/migrate-to-archestra in your project.
Going by SKILL.md and its folder, Migrate To Archestra needs Python for the scripts in its folder, the command-line tools its instructions call (python3, uv and pip) and credentials named ARCHESTRA_API_KEY. Our summary lists: Python 3; Docker; A credential in ARCHESTRA_API_KEY.
SKILL.md contains no URLs. Its commands use uv and pip, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.
Migrate To Archestra is published under the Apache-2.0 licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.5k tokens (SKILL.md is roughly 10k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 5.6k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Migrate To Archestra: MCP Server Builder (anthropics/skills, 180k stars), MCP Server Builder (shareAI-lab/learn-claude-code, 78k stars), MemPalace Setup and Operation (MemPalace/mempalace, 59k stars) and Fastmcp (Tommy-yw/RunbookHermes, 546 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
archestra-ai (a GitHub organization) maintains it in archestra-ai/archestra, which has 4,359 GitHub stars. The repository holds 23 skills in this directory. The repository was last updated on October 10, 2026.
Source: archestra-ai/archestra on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.