MCPSharp is a .NET library that helps you build Model Context Protocol (MCP) servers and clients - the standardized API protocol used by AI assistants and models.
# Add to your Claude Code skills
git clone https://github.com/afrise/MCPSharp
README.md
MCPSharp
MCPSharp is a .NET library that helps you build Model Context Protocol (MCP) servers and clients - the standardized API protocol used by AI assistants and models. With MCPSharp, you can:
Create MCP-compliant tools and functions that AI models can discover and use
Connect directly to existing MCP servers from C# code with an easy to use client
Expose your .NET methods as MCP endpoints with simple attributes
Handle MCP protocol details and JSON-RPC communication seamlessly
🚀 What's New in MCPSharp
Microsoft.Extensions.AI Integration: MCPSharp now integrates with Microsoft.Extensions.AI, allowing tools to be exposed as AIFunctions
Semantic Kernel Support: Add tools using Semantic Kernel's KernelFunctionAttribute
Dynamic Tool Registration: Register tools on-the-fly with custom implementation logic
Tool Change Notifications: Server now notifies clients when tools are added, updated, or removed
Complex Object Parameter Support: Better handling of complex objects in tool parameters
Better Error Handling: Improved error handling with detailed stack traces
When to Use MCPSharp
Use MCPSharp when you want to:
Create tools that AI assistants like Anthropic's Claude Desktop can use
mcp-client
mcp-server
microsoft-extensions-ai
model-context-protocol
sdk
semantic-kernel
Build MCP-compliant APIs without dealing with the protocol details
Expose existing .NET code as MCP endpoints
Add AI capabilities to your applications through standardized interfaces
Integrate with Microsoft.Extensions.AI and/or Semantic Kernel without locking into a single vendor
Features
Easy-to-use attribute-based API ([McpTool], [McpResource])
Built-in JSON-RPC support with automatic request/response handling
Automatic parameter validation and type conversion
Create a class and mark your method(s) with the [McpTool] attribute:
using MCPSharp;
public class Calculator
{
[McpTool("add", "Adds two numbers")] // Note: [McpFunction] is deprecated, use [McpTool] instead
public static int Add([McpParameter(true)] int a, [McpParameter(true)] int b)
{
return a + b;
}
}