Table of Contents

What Is MCP and Why Would I Use It with LM-Kit.NET?


TL;DR

MCP (Model Context Protocol) is an open standard that defines how AI applications connect to external tools, data sources, and services through a unified protocol. Think of it as a universal connector for AI: instead of building custom integrations for each service, you connect to any MCP server and instantly gain access to its tools, resources, and prompts. LM-Kit.NET implements a full MCP client, letting your agents connect to the growing ecosystem of MCP servers (filesystem, GitHub, databases, Slack, and many more) with a few lines of code.


What Problem Does MCP Solve?

Without MCP, connecting an AI agent to external services means writing custom code for each integration: one adapter for your database, another for your file system, another for your CRM. If you have N models and M data sources, you end up with N×M custom connectors.

MCP standardizes this into a single protocol. Every MCP server exposes the same interface. Every MCP client speaks the same language. The result: one connection pattern for all integrations.

Without MCP:                  With MCP:
Agent ──► Custom code ──► DB      Agent ──► MCP Client ──► Any MCP Server
Agent ──► Custom code ──► Files         (one protocol)     ├── Filesystem
Agent ──► Custom code ──► API                               ├── GitHub
Agent ──► Custom code ──► Slack                             ├── Database
   (N×M connectors)                                         └── Slack
                                                         (one connector each)

MCP in LM-Kit.NET

LM-Kit.NET implements a full MCP client (not a server). Your application connects to existing MCP servers and uses their capabilities through your agents:

using LMKit.Mcp;

// Connect to an MCP server over HTTP
var client = McpClientBuilder.ForHttp("https://mcp-server.example.com")
    .WithBearerToken("your-token")
    .WithClientInfo("MyApp", "My Application", "1.0.0")
    .Build();

await client.ConnectAsync();

// All MCP tools are now available as standard ITool instances
chat.Tools.Register(client);

// The agent can now use whatever tools the MCP server provides
string response = chat.Submit("List all files in the /data directory");

What MCP Servers Provide

An MCP server can expose three types of capabilities:

Capability What It Is Example
Tools Callable functions the agent can invoke read_file, create_issue, query_database
Resources Data the agent can read (like a virtual file system) Configuration files, database schemas, API documentation
Prompts Pre-built prompt templates with argument substitution "Summarize this PR", "Explain this error"

LM-Kit.NET supports all three, plus advanced features like sampling (server requests LLM completions from the client), elicitation (server requests structured user input), progress tracking, and logging.


Transport Protocols

Transport How It Works Best For
HTTP + SSE HTTP POST for requests, Server-Sent Events for server notifications Remote servers, cloud services, authenticated APIs
Stdio JSON-RPC over stdin/stdout of a subprocess Local servers (npm, Python, native executables)
Custom Implement IMcpTransport for any protocol WebSocket, Unix sockets, custom networking
// HTTP transport (remote server)
var client = McpClientBuilder.ForHttp("https://api.example.com/mcp")
    .WithBearerToken("token")
    .Build();

// Stdio transport (local subprocess)
var client = McpClientBuilder.ForStdio("npx", "@modelcontextprotocol/server-filesystem /data")
    .Build();

Growing MCP Ecosystem

Thousands of MCP servers are available, covering common integrations:

Category Examples
File systems Local filesystem, Google Drive, S3
Developer tools GitHub, GitLab, Jira, Linear
Databases PostgreSQL, SQLite, MongoDB
Communication Slack, Discord, email
Knowledge Wikipedia, web search, documentation sites
Productivity Notion, Todoist, calendar

Because MCP is an open standard (now governed by the Linux Foundation), the ecosystem grows continuously.


Share