SkyrimCK-MCP
MCP server that lets Claude Code read/write Skyrim SE ESP files without opening Creation Kit. Built to make modding accessible to blind modders.
Links
README
From the repo.
SkyrimCK-MCP
A Model Context Protocol (MCP) server that lets Claude Code create and edit Skyrim SE ESP/ESM files without opening Creation Kit. Built primarily to make the Creation Kit accessible to blind modders: describe what you want in plain language and Claude writes the ESP directly — records, subrecords, VMAD, ALPC, CTDA conditions, PACK templates, scenes, aliases, SNDR/SOUN, CELL overrides, etc.
Why
Creation Kit's GUI is unusable with screen readers. This project replaces it with Claude Code + a thin C# server that drives the esper library (by matortheeternal, author of zEdit / Mator Smash, built on xEdit record definitions).
The first real use case is the autowalk ESP for SkyrimNVDA — a full accessibility plugin that uses this ESP for its pathfinding feature.
Requirements
- .NET 8.0 SDK
- Skyrim SE (for testing the generated ESPs)
- Papyrus Compiler (ships with the Creation Kit or Skyrim AE install)
Setup
This repo depends on two external libraries that need to be cloned alongside it:
git clone https://github.com/Pyrhame/SkyrimCK-MCP.git
cd SkyrimCK-MCP
git clone https://github.com/matortheeternal/esper.git
git clone https://github.com/matortheeternal/balsa.git
dotnet build src/SkyrimCkMcp.csproj
The esper/ and balsa/ directories are not committed here — they're full
upstream clones you should keep updated independently.
Structure
SkyrimCK-MCP/
├── src/ C# server (Program.cs + csproj)
├── scripts/ Papyrus .psc source files
├── tools/ Helper tools (DumpPack, etc.)
├── esper/ External (clone manually)
├── balsa/ External (clone manually)
├── output/ Generated ESPs (gitignored)
└── CLAUDE.md Project instructions / lessons learned
What it can build
- QUST (quests with VMAD, aliases, ALPC, DNAM, scripts)
- PACK (Travel packages, template-based, with CTDA conditions)
- SCEN (scenes with phase markers)
- SNDR / SOUN (custom sounds, with proper Papyrus-compatible wrapping)
- CELL overrides (with REFR overrides, Initially Disabled flags)
- PKDT / PSDT / ALPC / VMAD binary subrecords
Most of the sharp edges (e.g. SOUN wrapping required for Papyrus Sound type,
GetFormFromFile vs GetForm, VMAD v2 Object format, template-based Travel
packages) are documented in CLAUDE.md.
Status
Alpha. Works for the SkyrimNVDA autowalk use case and some basic quest/sound records. Many record types are still unsupported.
License
MIT.
Credits
Collected info
- ★ 13 stars
- Language: C#
- Source updated: 9/15/2026
Config for your environment
Replace {MCP_ENDPOINT_URL} with this MCP’s endpoint URL (from its repo or docs above). No API key — you connect directly.
Tool
OS
Config file: ~/.cursor/mcp.json
{
"mcpServers": {
"mcp-server": {
"url": "{MCP_ENDPOINT_URL}"
}
}
}Paste into mcpServers in the config file. Restart Cursor after saving.
If this MCP is also published on mcpchannel.ai, you can subscribe from Browse and use the gateway config there instead.