@taxfyle/fxkit-mcp
v1.0.0
Published
Model Context Protocol server for FxKit C# functional programming library documentation
Readme
FxKit MCP Server
A Model Context Protocol (MCP) server that provides comprehensive documentation and assistance for the FxKit C# functional programming library.
Overview
FxKit MCP dynamically fetches and serves documentation from the official FxKit documentation site, providing AI models with:
- Complete documentation for all FxKit types (Option, Result, Validation, Unit)
- Compiler services documentation (source generators, analyzers)
- Code examples and API references
- Search capabilities across all documentation
- Pre-built prompts for common FxKit patterns
Features
Resources
The server exposes FxKit documentation sections as MCP resources:
introduction- FxKit overview and conceptsgetting-started- Installation and setup guideoption- Option type documentationresult- Result type documentationvalidation- Validation type documentationunit- Unit type documentationcompiler-overview- Compiler services overviewenum-match- EnumMatch generatorunion- Union type generatorlambda- Lambda generatortransformer- Transformer generatortesting- Testing utilities
Tools
Interactive tools for querying FxKit documentation:
search_documentation- Search across all documentationget_examples- Get code examples for specific featureslist_packages- List available NuGet packages
Prompts
Pre-configured prompts for common FxKit patterns:
convert-nullable-to-option- Convert nullable types to Optionrailway-oriented-programming- Implement railway-oriented patternsvalidation-multiple-errors- Use Validation for error accumulationgenerate-union-types- Create union types with source generators
Installation
From Source
- Clone this repository:
git clone https://github.com/taxfyle/fxkit-mcp.git
cd fxkit-mcp- Install dependencies:
npm install- Build the project:
npm run buildGlobal Installation
npm install -g @taxfyle/fxkit-mcpUsage
With Claude Code
{
"mcpServers": {
"fxkit-docs": {
"command": "npx",
"args": [
"-y",
"@taxfyle/fxkit-mcp@latest"
],
"env": {}
}
}
}With Claude Desktop
Add the following to your Claude Desktop configuration file:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"fxkit-docs": {
"command": "node",
"args": ["/path/to/fxkit-mcp/dist/index.js"]
}
}
}Or if installed globally:
{
"mcpServers": {
"fxkit-docs": {
"command": "fxkit-mcp"
}
}
}With MCP Inspector
Test the server using the MCP Inspector:
npx @modelcontextprotocol/inspector tsx src/index.tsProgrammatic Usage
import { FxKitMcpServer } from 'fxkit-mcp';
const server = new FxKitMcpServer();
await server.start();Development
Running in Development Mode
npm run devProject Structure
fxkit-mcp/
├── src/
│ ├── index.ts # Main entry point
│ ├── server.ts # MCP server implementation
│ ├── types.ts # TypeScript type definitions
│ ├── fetcher/
│ │ └── docs-fetcher.ts # Documentation fetching logic
│ ├── resources/ # Resource handlers (if extended)
│ ├── tools/ # Tool implementations (if extended)
│ └── prompts/ # Prompt templates (if extended)
├── dist/ # Compiled JavaScript
├── package.json
├── tsconfig.json
└── README.mdTesting
The server includes a test mode that verifies all documentation endpoints are accessible:
npm testExamples
Using with an AI Assistant
Once configured, you can ask your AI assistant questions like:
- "Show me the FxKit documentation for the Result type"
- "Search for examples of railway-oriented programming with FxKit"
- "How do I convert nullable types to Option in FxKit?"
- "Generate a union type for payment methods using FxKit"
The AI will use the MCP server to fetch relevant documentation and provide accurate, up-to-date information about FxKit.
Architecture
The server uses a dynamic fetching approach:
- No Static Content: Documentation is fetched on-demand from the live FxKit documentation site
- Caching: Responses are cached for 5 minutes to improve performance
- HTML Parsing: Uses Cheerio to extract content and code examples from documentation pages
- Type Safety: Full TypeScript implementation with strict typing
Contributing
Contributions are welcome! Please feel free to submit issues or pull requests.
Adding New Documentation Sections
To add new documentation sections:
- Update the paths array in
src/fetcher/docs-fetcher.ts - Add corresponding resource registration in
src/server.ts - Test that the new section is accessible
Extending Tools
New tools can be added in src/server.ts in the setupTools() method. Follow the existing pattern using registerTool().
License
MIT
Acknowledgments
- FxKit - The functional programming library for C#
- Model Context Protocol - The protocol specification
- effect-mcp - Inspiration for MCP server structure
Support
For issues related to:
- FxKit library: Visit the FxKit GitHub repository
- This MCP server: Open an issue in this repository
- MCP protocol: Check the MCP documentation# fxkit-mcp
