csharp-utcp
A high-performance, native C# implementation of the Universal Tool Calling Protocol - enabling AI agents to discover and communicate directly with tools without wrappers or middleware.
claude mcp add cicatriiz-csharp-utcp
How to use
This MCP server configuration enables UTCP-based multi-server coordination with an MCP endpoint. It supports both a local stdio-based MCP server and an HTTP MCP endpoint, allowing tools to be registered, discovered, and invoked through the UTCP protocol over MCP. Clients can register tools, search for them using UTCP search capabilities, and invoke them either synchronously or via streaming as defined by UTCP. The httpServer configuration demonstrates how to route UTCP traffic to an external MCP endpoint with optional HTTP headers for authentication or tracing. Use the stdioServer when running MCP locally as a process, and the httpServer when delegating MCP handling to a remote or hosted MCP service. The toolkit supports OAuth2-based authentication and streaming results, enabling robust tool invocation workflows across multiple providers.
How to install
Prerequisites:
- .NET 6+ SDK (or the version required by the Utcp project)
- Git
- Optional: Docker if you prefer containerized setup
Install steps:
-
Clone the repository: git clone https://github.com/yourorg/cicatriiz-csharp-utcp.git cd cicatriiz-csharp-utcp
-
Restore and build the solution: dotnet restore dotnet build dotnet test
-
Run the MCP-enabled server locally (example using the http/mcp endpoint):
- Ensure the MCP HTTP endpoint is reachable at http://localhost:7400/mcp
- If running a local stdio-based MCP server, ensure the process named in the stdioServer Command is available in PATH
- Start the hosting application that serves the MCP endpoint as defined in your configuration
-
Verify MCP endpoint is reachable by inspecting logs or using a simple UTCP client to register and call a tool via the MCP endpoint.
Additional notes
Tips and common considerations:
- Ensure the MCP endpoint URL (httpServer.Url) is reachable from clients, and that any required authentication headers are included (e.g., via httpServer.Headers).
- For OAuth2 authentication, configure the appropriate token acquisition flow (TokenUrl, ClientId, ClientSecret) if your MCP endpoint requires tokens.
- When using the stdioServer, ensure the command you specify can be launched by the hosting environment and that it exposes the MCP protocol interface expected by UTCP.
- If you encounter CORS or networking issues on the HTTP MCP endpoint, verify firewall rules and that the server is listening on the correct interface and port.
- Review how MCP result shaping and streaming are implemented to handle large tool outputs efficiently over MCP SSE streams.
Related MCP Servers
python-utcp
Official python implementation of UTCP. UTCP is an open standard that lets AI agents call any API directly, without extra middleware.
claude-code-open
Open source AI coding platform with Web IDE, multi-agent system, 37+ tools, MCP protocol. MIT licensed.
go-utcp
Official Go implementation of the UTCP
midnight
Midnight MCP server giving AI assistants access to Midnight blockchain — search contracts, analyze code, explore docs
local-skills
Universal MCP server enabling any LLM or AI agent to utilize expert skills from your local filesystem. Reduces context consumption through lazy loading. Works with Claude, Cline, and any MCP-compatible client.
mcp-client-gen
Turn any MCP server into a type-safe TypeScript SDK in seconds - with OAuth 2.1 and multi-provider support