BannerlordSage
FreeNot checkedA Model Context Protocol (MCP) server for Mount & Blade II: Bannerlord. Gives AI agents access to decompiled source search, XML data browsing, gameplay queries,
About
A Model Context Protocol (MCP) server for Mount & Blade II: Bannerlord. Gives AI agents access to decompiled source search, XML data browsing, gameplay queries, local mod source indexing, and patch generation tools.为《骑马与砍杀2:霸主》打造的 MCP 服务器,支持源码检索、XML 数据查询、玩法数据浏览、本地 Mod 源码索引与补丁辅助生成。
README
An MCP server for Mount & Blade II: Bannerlord that provides source code search and data browsing.
It reads your local Bannerlord installation, imports XML, decompiles official DLLs, builds a SQLite index, and exposes MCP tools for AI coding agents. Use cases:
- Mod development
- Reverse engineering
- Structured gameplay lookups
- Reading local mod source code
AI-Assisted Install
To have a coding agent (Codex, Claude, Gemini, Copilot, etc.) install and configure this for you:
- Send the repository URL to the AI
- Tell it to read
AGENTS.mdfirst - Tell it to follow
AI_QUICKSTART.md - Provide your
<BANNERLORD_GAME_DIR>when asked
Attribution
BannerlordSage includes work derived from RimSage by Vortex. The project remains under the MIT License. See LICENSE.
Tool Overview
BannerlordSage provides 37 tools across two entrypoints:
| Entrypoint | Tools | Notes |
|---|---|---|
bun run start:bannerlord |
35 | Default toolset for query, analysis, mod-source work, and project memory |
bun run start:bannerlord:full |
37 | Adds workspace creation and XSLT patch generation |
Basic workflow: run setup → start MCP → let the model call tools
Tool List
Diagnostics
| Tool | Description |
|---|---|
bannerlord_doctor |
Check module health: missing dependencies, duplicate DLLs, load order issues |
bannerlord_index_status |
Check whether BannerlordSage is initialized and the local index is ready |
Project Memory
| Tool | Description |
|---|---|
project_memory_add |
Store one project memory entry |
project_memory_capture_session |
Store a session summary plus decisions, pitfalls, preferences, TODOs, and notes in one call |
project_memory_search |
Search project memory before answering questions about past work |
project_memory_recent |
Show recent project memory entries |
project_memory_wakeup |
Load key active memory at session start |
project_memory_invalidate |
Mark an old memory as inactive |
Official Source & XML
| Tool | Description |
|---|---|
search_source |
Full-text search across decompiled official source — use this when you don't know which file to look in |
read_csharp_type |
Read the decompiled definition of a C# type by name |
read_file |
Read a specific line range from a known file path |
list_directory |
Browse the imported official asset directory |
search_xml |
Search official XML files for an ID, field, token, or concept |
resolve_localization |
Resolve in-game localization tokens like {=abc123} to actual text |
read_gauntlet_ui |
Inspect Gauntlet UI file bindings and interaction logic |
Official/Community Docs & API
| Tool | Description |
|---|---|
search_bannerlord_knowledge |
Natural-language unified entrypoint; use first when the user says they want to make a mod, feature, patch, UI, XML edit, or calls MCP without naming a specific tool |
search_bannerlord_docs |
Search official tutorials and BannerlordModding.LT community docs for workflows, editor usage, assets, Gauntlet UI, module structure, and practices |
search_bannerlord_api_docs |
Search official API Doxygen symbols; when the API version does not match the installed game, treat it as historical reference and prefer local decompiled source |
Structured Gameplay Lookups
| Tool | Description |
|---|---|
trace_troop_tree |
Query the full upgrade path for a troop type |
get_item_stats |
Query detailed stats for a weapon, equipment, or smithing piece |
get_hero_profile |
Query a hero's skills, traits, and background |
get_clan_summary |
Query a clan or faction's members, strength, and relations |
get_kingdom_summary |
Query a kingdom's territories, policies, and current state |
get_culture_summary |
Query a culture's unique units, bonuses, and style |
get_settlement_summary |
Query a town, village, or castle |
get_skill_data |
Query a skill's attributes, bonuses, and related perks |
get_policy_summary |
Query a policy's description, support info, and cross-references |
get_perk_data |
Query a perk's skill tree, paired perk, character bonuses, and description |
Local Mod Source
These tools read your own local mod source code, not the official imported source.
| Tool | Description |
|---|---|
mod_source_status |
Check whether a mod source workspace is configured and indexed |
index_mod_source |
Index a local mod source directory for search and type lookup |
search_mod_source |
Search across your local mod source code |
read_mod_file |
Read a specific source file from your local mod |
list_mod_directory |
Browse your local mod's directory structure |
read_mod_type |
Read a C# type definition from your local mod by name |
Patch & Code Generation
| Tool | Description |
|---|---|
generate_harmony_patch |
Generate a Harmony patch code scaffold with method signature hints — parameter types need manual completion |
create_mod_workspace ⁺ |
Generate a new mod project structure (SubModule.xml, .csproj, C# entry point) — ready to dotnet build; refuses to overwrite non-empty directories |
generate_xslt_patch ⁺ |
Generate an XSLT patch template for modifying official XML — does not validate XPath or fragment syntax, treat as a starting template |
⁺ Only available in
start:bannerlord:full.
Common Workflows
Browse official source:
search_source— locate the fileread_file— read the relevant sectionread_csharp_type— inspect the type definition
Browse XML or localization:
search_xml— locate the fileread_file— read the contentresolve_localization— resolve tokens
Known game ID, direct lookup:
- Use the structured query tools directly:
get_item_stats,trace_troop_tree,get_hero_profile, etc.
Read local mod source:
mod_source_status— confirm the workspacesearch_mod_source— search the coderead_mod_file/read_mod_type— read the details
Resume work with project memory:
project_memory_wakeup— load the key active context for the workspaceproject_memory_search— check whether a similar decision, pitfall, or preference already existsproject_memory_capture_session— store the useful session output near the end of the task
Daily MCP Usage
Once BannerlordSage is installed and connected to your AI client, the normal daily loop is:
- Start or resume a task and call
project_memory_wakeup - Explore official behavior with
search_source,read_file, andread_csharp_type - Explore your own mod with
mod_source_status,search_mod_source,read_mod_file, andread_mod_type - Use the structured query tools when you already know an in-game id
- Before stating project history, call
project_memory_search - Near the end of the task, call
project_memory_capture_session
Project Memory Workflow
Project memory is a local recall layer. It does not change the model's context window. It gives the agent a place to store decisions, pitfalls, preferences, and follow-up state.
Use it like this:
- start a resumed task with
project_memory_wakeup - search memory before claiming project history
- store only durable conclusions
- prefer
project_memory_capture_sessionnear task completion - invalidate old memories when they are no longer true
Installation
1. Prerequisites
- Windows
- A legitimately owned local Bannerlord installation
- Bun
- ripgrep
- .NET SDK 8+
- ILSpyCmd
One-liner to install all dependencies:
powershell -c "irm bun.sh/install.ps1 | iex"
winget install BurntSushi.ripgrep.MSVC
winget install Microsoft.DotNet.SDK.8
dotnet tool install --global ilspycmd
2. Install packages
bun install
3. Run setup
bun run setup:bannerlord -- --game-dir "<BANNERLORD_GAME_DIR>"
Replace <BANNERLORD_GAME_DIR> with the absolute path to your local Bannerlord installation. The first run takes a while; subsequent runs are incremental.
Setup also indexes public official/community documentation and official API search data by default. The docs/API data is stored in the local SQLite database, reused on later runs, and only refreshed when missing or when --reindex-docs is passed. Use --skip-docs for offline or local-only setup.
Common flags:
| Flag | Description |
|---|---|
--dll-scope core |
Decompile core TaleWorlds DLLs only (fastest) |
--dll-scope modding |
Core + modding support libs (Newtonsoft.Json, etc.) |
--dll-scope official |
All official module DLLs |
--dll-scope all |
Official + third-party module DLLs (most complete, slowest) |
--xml-scope official |
Import official module XML only |
--xml-scope all |
Official + all locally installed third-party module XML |
--accept-disclaimer |
Skip the interactive disclaimer prompt |
--clean |
Wipe local assets and rebuild indexes from scratch, including docs/API unless --skip-docs is also passed |
--skip-docs |
Do not download/index official docs or API docs during setup |
--reindex-docs |
Force refresh official/community docs and all official API versions |
4. Start MCP
# Default (recommended)
bun run start:bannerlord
# Full toolset
bun run start:bannerlord:full
MCP Client Configuration
[mcp_servers.bannerlordsage]
command = "bun"
args = ["run", "src/entrypoints/bannerlord-stdio.ts"]
cwd = "<REPO_DIR>"
enabled = true
Full toolset:
[mcp_servers.bannerlordsage]
command = "bun"
args = ["run", "src/entrypoints/bannerlord-full-stdio.ts"]
cwd = "<REPO_DIR>"
enabled = true
Replace <REPO_DIR> with the absolute path to this repository on your machine.
Environment Variables
| Variable | Description |
|---|---|
BANNERSAGE_GAME |
Active game profile — currently always bannerlord |
BANNERSAGE_BANNERLORD_GAME_DIR |
Default Bannerlord installation path |
BANNERSAGE_GAME_DIR |
Generic default game path |
BANNERSAGE_ILSPYCMD_EXE |
Override the ilspycmd executable path |
BANNERSAGE_EULA_ACCEPTED=true |
Skip the interactive disclaimer prompt |
Scripts
bun run setup:bannerlord -- --game-dir "<BANNERLORD_GAME_DIR>" # initialize/update local and public docs indexes
bun run start:bannerlord # start default MCP
bun run start:bannerlord:full # start full MCP
bun run verify:memory # verify native project-memory tools
bun run index:gameplay # rebuild gameplay index only
bun run index:docs # manually refresh official and community docs
bun run index:api-docs # manually refresh official API symbol versions
bun run index:mod-source -- --source-dir "<MOD_SOURCE_DIR>" # index local mod source
bun run verify:bannerlord -- --game-dir "<BANNERLORD_GAME_DIR>" # local regression check
bun run smoke:release # quick build validation
bun run report:scopes -- --game-dir "<BANNERLORD_GAME_DIR>" # output scope report
Project Structure
| Path | Description |
|---|---|
src/entrypoints/ |
MCP and setup entrypoints |
src/scripts/ |
Setup, indexing, verification, and release scripts |
src/tools/ |
MCP tool implementations |
src/utils/ |
Shared runtime and indexing logic |
tools/BannerlordSage.CSharpIndexer/ |
Roslyn-based C# indexer |
dist/ |
Locally generated runtime data (not committed) |
AGENTS.md |
Installation instructions for AI coding agents |
AI_QUICKSTART.md |
Copy-paste install prompt template for users |
Disclaimer
This project is for personal learning, research, and mod development with a legitimately owned copy of the game.
- The repository does not include or redistribute Bannerlord game assets.
- Users are responsible for complying with the game EULA and applicable local law.
- Decompiled and indexed content remains local by default.
Installing BannerlordSage
This server has no published package — it is built from source. Open the repository and follow its README.
▸ github.com/hby7921/BannerlordSageFAQ
Is BannerlordSage MCP free?
Yes, BannerlordSage MCP is free — one-click install via Unyly at no cost.
Does BannerlordSage need an API key?
No, BannerlordSage runs without API keys or environment variables.
Is BannerlordSage hosted or self-hosted?
Self-hosted: the server runs locally on your machine via the install command above.
How do I install BannerlordSage in Claude Desktop, Claude Code or Cursor?
Open BannerlordSage on unyly.org, pick your client tab (Claude Desktop, Claude Code, Cursor) and press Install — the config is generated automatically, no JSON editing.
Related MCPs
Fetch
Web content fetching and conversion for efficient LLM usage.
Roblox Studio
Enables AI coding tools to control Roblox Studio for workspace exploration, instance manipulation, and script management. It provides tools for playtesting, sce
by paralovAWS KB Retrieval
Retrieval from AWS Knowledge Base using Bedrock Agent Runtime.
by modelcontextprotocolSpring AI MCP Server
Provides auto-configuration for setting up an MCP server in Spring Boot applications.
llm-analysis-assistant
A very streamlined mcp client that supports calling and monitoring stdio/sse/streamableHttp, and can also view request responses through the /logs page. It also
by xuzexin-hzMCP-Agent
A simple, composable framework to build agents using Model Context Protocol by [LastMile AI](https://www.lastmileai.dev)
by lastmile-aiSpring AI MCP Client
Provides auto-configuration for MCP client functionality in Spring Boot applications.
mcp.natoma.ai
A Hosted MCP Platform to discover, install, manage and deploy MCP servers by [Natoma Labs](https://www.natoma.ai)
MCPHub
Website to list high quality MCP servers and reviews by real users. Also provide online chatbot for popular LLM models with MCP server support.
MCP Servers Rating and User Reviews
Website to rate MCP servers, write authentic user reviews, and [search engine for agent & mcp](http://www.deepnlp.org/search/agent)
Compare BannerlordSage with
Not sure what to pick?
Find your stack in 60 seconds
Author?
Embed badge for your README
Browse similar
All ai MCPs
