MSFS SDK MCP Server
Used as an HTML parser to extract and process content from MSFS SDK documentation pages
Serves as the runtime environment for the MSFS SDK MCP server
Optional integration for browser automation to enhance documentation retrieval capabilities
Used as the primary programming language for building the MSFS SDK MCP server
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@MSFS SDK MCP Serversearch for livery documentation in the MSFS SDK"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
MSFS SDK MCP Server
A modern, performant MCP server for fast, structured access to Microsoft Flight Simulator SDK documentation via natural language and structured queries.
๐ Features
โก๏ธ Real-time documentation search in the official MSFS SDK documentation
๐ Multiple search categories: contents, index, glossary, all
๐ง Natural language processing: queries like "Search livery op msfs sdk"
๐ Structured results: titles, URLs, descriptions, categories
๐ Detailed content retrieval from specific documentation pages
๐ Full MCP compatibility with AI assistants and tools
๐พ Embedded data: no external files needed
๐ก๏ธ Robust error handling and logging
Related MCP server: mcp-docs
๐ ๏ธ Tech Stack
Runtime: Node.js 18+
Language: TypeScript 5.0
Framework: Model Context Protocol (MCP)
HTTP Client: node-fetch
HTML Parser: Cheerio
Browser Automation: Puppeteer (optional)
Build Tool: TypeScript Compiler
๐ Requirements
Node.js 18.x or higher
npm 8.x or higher
TypeScript 5.x
๐ Setup
Clone the repository:
git clone https://github.com/yourusername/msfs-sdk-mcp.git cd msfs-sdk-mcpInstall dependencies:
npm installBuild the project:
npm run buildStart the server:
npm start
๐ง Available Tools
Tool | Description | Parameters |
| ๐ Search MSFS SDK documentation |
|
| ๐ Retrieve detailed content |
|
| ๐ Show all search categories | - |
| ๐ List items per category |
|
| ๐ง Natural language queries |
|
๐ท๏ธ Search Categories
contents- ๐ Main documentation contentindex- ๐ Documentation index entriesglossary- ๐ Technical terms and definitionsall- ๐ Search across all categories (default: index)
๐ Integration with AI Assistants
This server works with MCP-compatible AI assistants such as:
๐ค Claude Desktop - Official MCP support
๐ Windsurf IDE - Built-in MCP integration
๐ง Other MCP clients - All MCP-compatible tools
โ๏ธ Configuration Example
{
"mcpServers": {
"msfs-sdk": {
"command": "node",
"args": ["path/to/msfs-sdk-mcp/dist/index.js"]
}
}
}๐ Project Structure
msfs-sdk-mcp/
โโโ ๐ package.json # Dependencies and scripts
โโโ ๐ tsconfig.json # TypeScript configuration
โโโ ๐ README.md # Project documentation
โโโ ๐ LICENSE # MIT License
โโโ ๐ src/
โ โโโ ๐ index.ts # ๐ Main MCP server
โ โโโ ๐ services/
โ โโโ ๐ documentationService.ts # ๐ Search logic
โ โโโ ๐ naturalLanguageService.ts # ๐ง NLP processing
โโโ ๐ dist/ # ๐๏ธ Compiled JavaScript๐งช Development & Scripts
Script | Description | Command |
๐๏ธ Build | Compile TypeScript |
|
๐ Dev | Watch mode development |
|
๐ Start | Start MCP server |
|
๐ Type Check | TypeScript validation |
|
๐ API Reference
๐ Tool Examples
๐ search_msfs_docs
{
"name": "search_msfs_docs",
"arguments": {
"query": "livery",
"category": "all",
"limit": 10
}
}๐ list_category_items
{
"name": "list_category_items",
"arguments": {
"category": "glossary"
}
}๐ get_doc_content
{
"name": "get_doc_content",
"arguments": {
"url": "https://docs.flightsimulator.com/html/...",
"section": "overview"
}
}๐ Search URL Format
https://docs.flightsimulator.com/html/Introduction/Introduction.htm?rhsearch={query}&agt={category}Parameters:
{query}- ๐ Search term (URL-encoded){category}- ๐ท๏ธ Optional category (index,glossary, or empty for contents)
๐ Response Format
{
"content": [
{
"type": "text",
"text": "**Title**\n- Category: category\n- URL: url\n- Description: description"
}
]
}๐ค Contributing
๐ด Fork this repository
๐ฑ Create a feature branch:
git checkout -b feature-nameโจ Implement and test your changes
๐ Commit with clear message:
git commit -am 'Add new feature'๐ Push to your branch:
git push origin feature-name๐ฉ Open a Pull Request
๐ Commit Convention
feat:- New featuresfix:- Bug fixesdocs:- Documentation updatesrefactor:- Code refactoringtest:- Test additions
๐ License
MIT License โ See LICENSE file for details.
๐ Support & Contact
๐ Issues: GitHub Issues
๐ MSFS SDK Docs: Official documentation
โ New issue? Provide clear information and reproducible steps
๐ Changelog
v1.0.0 - ๐ Initial Release
โจ Initial release - Complete MCP server implementation
๐ Real-time documentation search - Fast access to MSFS SDK docs
๐ Multiple search categories - Contents, index, glossary support
๐ง Natural language processing - Intuitive query processing
๐ MCP standard support - Full compatibility
๐พ Embedded data - No external dependencies
โ ๏ธ Disclaimer
This is an unofficial tool, not affiliated with Microsoft or Microsoft Flight Simulator. Provides access to public documentation via the official MSFS SDK website.
๐ Happy Flying! โ๏ธ
 
ยฉ 90barricade93 - aero-ai-solutions.com
 
Available Tools
5 toolsget_doc_contentC
Get detailed content from a specific MSFS SDK documentation page
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | URL of the documentation page to retrieve | |
| section | No | Specific section to extract (e.g., "overview", "examples", "api-reference") |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool retrieves content but lacks details on permissions, rate limits, error handling, or output format. This is a significant gap for a tool that likely involves network requests and content extraction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's purpose without unnecessary words. It's front-loaded with the core action and resource, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of retrieving documentation content (involving URLs and optional sections), no annotations, and no output schema, the description is incomplete. It doesn't explain what 'detailed content' includes, how errors are handled, or any behavioral traits, leaving gaps for effective tool use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, so the schema already documents both parameters ('url' and 'section') adequately. The description adds no additional meaning beyond implying content extraction, which aligns with the schema but doesn't provide extra context like URL format requirements or section handling specifics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Get detailed content') and resource ('specific MSFS SDK documentation page'), making the purpose understandable. However, it doesn't explicitly differentiate from sibling tools like 'search_msfs_docs' or 'natural_language_query', which might also retrieve documentation content through different mechanisms.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing a valid URL), exclusions, or comparisons to sibling tools like 'search_msfs_docs' for broader searches or 'natural_language_query' for query-based retrieval.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_categoriesB
List all available MSFS SDK documentation categories
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states what the tool does but doesn't describe how it behavesโe.g., whether it returns a paginated list, the format of the output, or any rate limits. This leaves gaps in understanding the tool's operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence that directly states the tool's purpose without any unnecessary words. It's front-loaded and efficient, making it easy to understand at a glance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (0 parameters, no output schema, no annotations), the description is adequate but minimal. It covers the basic purpose but lacks details on output format or behavioral context, which could be helpful for an agent to use it effectively, though not strictly required for such a straightforward tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has 0 parameters, and the schema description coverage is 100%, so there's no need for parameter details in the description. The description appropriately doesn't mention parameters, aligning with the schema, which justifies a baseline score of 4 for this dimension.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('List') and resource ('all available MSFS SDK documentation categories'), making the purpose specific and understandable. However, it doesn't explicitly distinguish this tool from its sibling 'list_category_items', which might list items within categories rather than the categories themselves.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'list_category_items' or 'search_msfs_docs'. It lacks context about prerequisites, such as whether this is a starting point for documentation navigation or if it requires authentication.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_category_itemsC
Returns all items for a given documentation category
| Name | Required | Description | Default |
|---|---|---|---|
| category | Yes | Category to list items from (index, contents, or glossary) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states it 'Returns all items,' implying a read-only operation, but doesn't specify if it's paginated, the format of returned items, potential rate limits, or error conditions. This leaves significant gaps in understanding how the tool behaves beyond its basic function.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's function without unnecessary words. It is front-loaded with the core action and resource, making it easy to parse quickly, which is ideal for conciseness in tool descriptions.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (1 parameter, no output schema, no annotations), the description is minimal. It lacks details on return values (e.g., item format, list structure), error handling, or integration with sibling tools, making it incomplete for effective agent use despite the straightforward schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, clearly documenting the 'category' parameter with an enum of allowed values. The description adds no additional semantic context beyond what the schema provides, such as examples of what 'items' entail or how categories relate to documentation structure, so it meets the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Returns') and resource ('all items for a given documentation category'), making the purpose understandable. However, it doesn't differentiate from sibling tools like 'list_categories' (which likely lists categories rather than items within them) or 'get_doc_content' (which might fetch specific document content), leaving room for improvement in sibling distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites, such as needing a valid category from 'list_categories', or compare it to siblings like 'search_msfs_docs' for more targeted queries, leaving the agent without contextual usage cues.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
natural_language_queryC
Process natural language queries like "Search livery op msfs sdk"
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Natural language query (e.g., "Search livery op msfs sdk") |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It states the tool 'processes' queries but gives no behavioral details: no indication of what processing entails (e.g., parsing, interpreting, returning results), whether it's read-only or mutative, what permissions are needed, or what the output looks like. The example implies MSFS SDK context but doesn't clarify if this is required or just an example.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with just one sentence and zero wasted words. It's front-loaded with the core purpose and includes a helpful example. Every element earns its place without redundancy or unnecessary elaboration.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no annotations and no output schema, the description is incomplete. It doesn't explain what 'processing' means behaviorally, what results to expect, or how this differs from sibling tools. The example suggests MSFS SDK context but leaves this ambiguous. More context is needed given the lack of structured metadata.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already fully documents the single 'query' parameter. The description adds minimal value beyond the schema by providing an example query ('Search livery op msfs sdk'), but doesn't explain parameter semantics like format expectations, length limits, or special handling. Baseline 3 is appropriate when schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Process natural language queries' with a specific example. It uses a verb ('process') and identifies the resource ('natural language queries'), but doesn't explicitly differentiate from sibling tools like 'search_msfs_docs' which might handle similar content.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools like 'search_msfs_docs' or explain what makes this tool different (e.g., handling unstructured queries vs. structured searches). The example query suggests MSFS SDK context, but this isn't stated as a requirement or limitation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_msfs_docsC
Search MSFS SDK documentation for specific topics
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search query for MSFS SDK documentation | |
| category | No | Optional category filter (e.g., "contents", "index", "glossary") | |
| limit | No | Maximum number of results to return |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the action ('Search') but doesn't mention any behavioral traits like whether it's read-only, potential rate limits, authentication needs, or what the search returns (e.g., format, pagination). This leaves significant gaps for a tool with 3 parameters.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's purpose without any wasted words. It is appropriately sized and front-loaded, making it easy to understand at a glance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (3 parameters, no annotations, no output schema), the description is incomplete. It doesn't explain what the tool returns, how results are structured, or any behavioral context. For a search tool with multiple parameters, more detail is needed to guide effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, so the schema already documents all parameters thoroughly. The description adds no additional meaning beyond the schema, such as examples or usage tips for the parameters. Baseline 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Search') and resource ('MSFS SDK documentation'), making the purpose evident. However, it doesn't differentiate from sibling tools like 'natural_language_query' or 'get_doc_content', which might also involve documentation retrieval, so it lacks sibling distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as 'natural_language_query' or 'list_category_items'. The description implies usage for searching topics but offers no explicit context, exclusions, or comparisons with siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
5 tool updates
- First observed
get_doc_content - First observed
list_categories - First observed
list_category_items - First observed
natural_language_query - First observed
search_msfs_docs
TDQS
Scored across 5 tools
Most tools have distinct purposes: get_doc_content retrieves specific pages, list_categories and list_category_items handle hierarchical browsing, and search_msfs_docs performs keyword searches. However, natural_language_query overlaps with search_msfs_docs as both handle search-like functionality, which could cause minor confusion for an agent.
All tool names follow a consistent snake_case pattern with clear verb_noun structures (e.g., get_doc_content, list_categories, search_msfs_docs). The naming is predictable and readable throughout the set.
With 5 tools, this server is well-scoped for its purpose of accessing MSFS SDK documentation. Each tool serves a distinct role in browsing, retrieving, and searching documentation, making the count appropriate and manageable.
The tool set covers core documentation access needs: browsing categories, listing items, retrieving content, and searching. A minor gap exists in update or management operations, but this is reasonable for a read-only documentation server, and agents can work effectively with the provided tools.
Maintenance
Related MCP Connectors
MCP server for querying Forkast documentation
Driflyte MCP server which lets AI assistants query topic-specific knowledge from web and GitHub.
MCP server for opencode documentation, generated by doc2mcp.
Related MCP Servers
- AlicenseBqualityDmaintenanceProvides comprehensive access to MCP documentation through structured guides, full-text search, and interactive development workflows for building servers and clients.310 npmMIT
- AlicenseNot gradedqualityDmaintenanceGeneric MCP server that exposes Markdown documentation to LLMs, enabling them to search and answer questions about any software documentation.MIT
- AlicenseNot gradedqualityCmaintenanceAn MCP server that provides full-text search over documentation using Whoosh, enabling AI assistants to find up-to-date, authoritative answers.MIT
- AlicenseAqualityDmaintenanceAn MCP server that serves documentation and enables AI-powered search, Q\&A, and document analysis for developer tools and guides.54MIT