Skip to content

Commit 44f3de5

Browse files
authored
Merge branch 'main' into davidsp/auth-rs-as-prm
2 parents ef76ec2 + b1a37f1 commit 44f3de5

File tree

3 files changed

+107
-42
lines changed

3 files changed

+107
-42
lines changed

docs/clients.mdx

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,12 +21,15 @@ This page provides an overview of applications that support the Model Context Pr
2121
| [Daydreams Agents][Daydreams] |||||| Support for drop in Servers to Daydreams agents |
2222
| [Emacs Mcp][Mcp.el] |||||| Supports tools in Emacs. |
2323
| [fast-agent][fast-agent] |||||| Full multimodal MCP support, with end-to-end tests |
24+
| [FLUJO][FLUJO] |||||| Support for resources, Prompts and Roots are coming soon |
2425
| [Genkit][Genkit] | ⚠️ ||||| Supports resource list and lookup through tools. |
2526
| [GenAIScript][GenAIScript] |||||| Supports tools. |
2627
| [Goose][Goose] |||||| Supports tools. |
28+
| [Klavis AI Slack/Discord/Web][Klavis AI] |||||| Supports tools and resources. |
2729
| [LibreChat][LibreChat] |||||| Supports tools for Agents |
2830
| [mcp-agent][mcp-agent] |||| ⚠️ || Supports tools, server connection management, and agent workflows. |
2931
| [MCPHub][MCPHub] | ✅ | ✅ | ✅ | ❌ | ❌ | Supports tools, resources, and prompts in Neovim
32+
| [MCPOmni-Connect][MCPOmni-Connect] |||||| Supports tools with agentic mode, ReAct, and orchestrator capabilities. |
3033
| [Microsoft Copilot Studio] |||||| Supports tools |
3134
| [OpenSumi][OpenSumi] |||||| Supports tools in OpenSumi |
3235
| [oterm][oterm] |||||| Supports tools, prompts and sampling for Ollama. |
@@ -35,6 +38,7 @@ This page provides an overview of applications that support the Model Context Pr
3538
| [SpinAI][SpinAI] |||||| Supports tools for Typescript AI Agents |
3639
| [Superinterface][Superinterface] |||||| Supports tools |
3740
| [TheiaAI/TheiaIDE][TheiaAI/TheiaIDE] |||||| Supports tools for Agents in Theia AI and the AI-powered Theia IDE |
41+
| [TypingMind App][TypingMind App] |||||| Supports tools at app-level (appear as plugins) or when assigned to Agents |
3842
| [VS Code GitHub Copilot][VS Code] |||||| Supports dynamic tool/roots discovery, secure secret configuration, and explicit tool prompting |
3943
| [Windsurf Editor][Windsurf] |||||| Supports tools with AI Flow for collaborative development. |
4044
| [Witsy][Witsy] |||||| Supports tools in Witsy. |
@@ -50,14 +54,17 @@ This page provides an overview of applications that support the Model Context Pr
5054
[CopilotMCP]: https://github.com/VikashLoomba/copilot-mcp
5155
[Cursor]: https://cursor.com
5256
[Daydreams]: https://github.com/daydreamsai/daydreams
57+
[Klavis AI]: https://www.klavis.ai/
5358
[Mcp.el]: https://github.com/lizqwerscott/mcp.el
5459
[fast-agent]: https://github.com/evalstate/fast-agent
60+
[FLUJO]: https://github.com/mario-andreschak/flujo
5561
[Genkit]: https://github.com/firebase/genkit
5662
[GenAIScript]: https://microsoft.github.io/genaiscript/reference/scripts/mcp-tools/
5763
[Goose]: https://block.github.io/goose/docs/goose-architecture/#interoperability-with-extensions
5864
[LibreChat]: https://github.com/danny-avila/LibreChat
5965
[mcp-agent]: https://github.com/lastmile-ai/mcp-agent
6066
[MCPHub]: https://github.com/ravitemer/mcphub.nvim
67+
[MCPOmni-Connect]: https://github.com/Abiorh001/mcp_omni_connect
6168
[Microsoft Copilot Studio]: https://learn.microsoft.com/en-us/microsoft-copilot-studio/agent-extend-action-mcp
6269
[OpenSumi]: https://github.com/opensumi/core
6370
[oterm]: https://github.com/ggozad/oterm
@@ -66,6 +73,7 @@ This page provides an overview of applications that support the Model Context Pr
6673
[SpinAI]: https://spinai.dev
6774
[Superinterface]: https://superinterface.ai
6875
[TheiaAI/TheiaIDE]: https://eclipsesource.com/blogs/2024/12/19/theia-ide-and-theia-ai-support-mcp/
76+
[TypingMind App]: https://www.typingmind.com
6977
[VS Code]: https://code.visualstudio.com/
7078
[Windsurf]: https://codeium.com/windsurf
7179
[Witsy]: https://github.com/nbonamy/witsy
@@ -179,6 +187,16 @@ The Claude desktop application provides comprehensive support for MCP, enabling
179187
- Built in support for "Building Effective Agents" workflows.
180188
- Deploy Agents as MCP Servers
181189

190+
### FLUJO
191+
Think n8n + ChatGPT. FLUJO is an desktop application that integrates with MCP to provide a workflow-builder interface for AI interactions. Built with Next.js and React, it supports both online and offline (ollama) models, it manages API Keys and environment variables centrally and can install MCP Servers from GitHub. FLUJO has an ChatCompletions endpoint and flows can be executed from other AI applications like Cline, Roo or Claude.
192+
193+
**Key features:**
194+
- Environment & API Key Management
195+
- Model Management
196+
- MCP Server Integration
197+
- Workflow Orchestration
198+
- Chat Interface
199+
182200
### Genkit
183201
[Genkit](https://github.com/firebase/genkit) is a cross-language SDK for building and integrating GenAI features into applications. The [genkitx-mcp](https://github.com/firebase/genkit/tree/main/js/plugins/mcp) plugin enables consuming MCP servers as a client or creating MCP servers from Genkit tools and prompts.
184202

@@ -205,6 +223,19 @@ Programmatically assemble prompts for LLMs using [GenAIScript](https://microsoft
205223
- Goose allows you to extend its functionality by [building your own MCP servers](https://block.github.io/goose/docs/tutorials/custom-extensions).
206224
- Includes built-in tools for development, web scraping, automation, memory, and integrations with JetBrains and Google Drive.
207225

226+
### Klavis AI Slack/Discord/Web
227+
[Klavis AI](https://www.klavis.ai/) is an Open-Source Infra to Use, Build & Scale MCPs with ease.
228+
229+
**Key features:**
230+
- Slack/Discord/Web MCP clients for using MCPs directly
231+
- Simple web UI dashboard for easy MCP configuration
232+
- Direct OAuth integration with Slack & Discord Clients and MCP Servers for secure user authentication
233+
- SSE transport support
234+
- Open-source infrastructure ([GitHub repository](https://github.com/Klavis-AI/klavis))
235+
236+
**Learn more:**
237+
- [Demo video showing MCP usage in Slack/Discord](https://youtu.be/9-QQAhrQWw8)
238+
208239
### LibreChat
209240
[LibreChat](https://github.com/danny-avila/LibreChat) is an open-source, customizable AI chat UI that supports multiple AI providers, now including MCP integration.
210241

@@ -232,6 +263,17 @@ Programmatically assemble prompts for LLMs using [GenAIScript](https://microsoft
232263
- Create Lua-based MCP servers directly in Neovim.
233264
- Inegrates with popular Neovim chat plugins Avante.nvim and CodeCompanion.nvim
234265

266+
### MCPOmni-Connect
267+
[MCPOmni-Connect](https://github.com/Abiorh001/mcp_omni_connect) is a versatile command-line interface (CLI) client designed to connect to various Model Context Protocol (MCP) servers using both stdio and SSE transport.
268+
269+
**Key features:**
270+
- Support for resources, prompts, tools, and sampling
271+
- Agentic mode with ReAct and orchestrator capabilities
272+
- Seamless integration with OpenAI models and other LLMs
273+
- Dynamic tool and resource management across multiple servers
274+
- Support for both stdio and SSE transport protocols
275+
- Comprehensive tool orchestration and resource analysis capabilities
276+
235277
### Microsoft Copilot Studio
236278
[Microsoft Copilot Studio] is a robust SaaS platform designed for building custom AI-driven applications and intelligent agents, empowering developers to create, deploy, and manage sophisticated AI solutions.
237279

@@ -302,6 +344,18 @@ Theia AI and Theia IDE's MCP integration provide users with flexibility, making
302344
- [Theia IDE and Theia AI MCP Announcement](https://eclipsesource.com/blogs/2024/12/19/theia-ide-and-theia-ai-support-mcp/)
303345
- [Download the AI-powered Theia IDE](https://theia-ide.org/)
304346

347+
### TypingMind App
348+
[TypingMind](https://www.typingmind.com) is an advanced frontend for LLMs with MCP support. TypingMind supports all popular LLM providers like OpenAI, Gemini, Claude, and users can use with their own API keys.
349+
350+
**Key features:**
351+
- **MCP Tool Integration**: Once MCP is configured, MCP tools will show up as plugins that can be enabled/disabled easily via the main app interface.
352+
- **Assign MCP Tools to Agents**: TypingMind allows users to create AI agents that have a set of MCP servers assigned.
353+
- **Remote MCP servers**: Allows users to customize where to run the MCP servers via its MCP Connector configuration, allowing the use of MCP tools across multiple devices (laptop, mobile devices, etc.) or control MCP servers from a remote private server.
354+
355+
**Learn more:**
356+
- [TypingMind MCP Document](https://www.typingmind.com/mcp)
357+
- [Download TypingMind (PWA)](https://www.typingmind.com/)
358+
305359
### VS Code GitHub Copilot
306360
[VS Code](https://code.visualstudio.com/) integrates MCP with GitHub Copilot through [agent mode](https://code.visualstudio.com/docs/copilot/chat/chat-agent-mode), allowing direct interaction with MCP-provided tools within your agentic coding workflow. Configure servers in Claude Desktop, workspace or user settings, with guided MCP installation and secure handling of keys in input variables to avoid leaking hard-coded keys.
307361

docs/examples.mdx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@ These MCP servers are maintained by companies for their platforms:
4646
- **[E2B](https://github.com/e2b-dev/mcp-server)** - Execute code in secure cloud sandboxes
4747
- **[Neon](https://github.com/neondatabase/mcp-server-neon)** - Interact with the Neon serverless Postgres platform
4848
- **[Obsidian Markdown Notes](https://github.com/calclavia/mcp-obsidian)** - Read and search through Markdown notes in Obsidian vaults
49+
- **[Prisma](https://pris.ly/docs/mcp-server)** - Manage and interact with Prisma Postgres databases
4950
- **[Qdrant](https://github.com/qdrant/mcp-server-qdrant/)** - Implement semantic memory using the Qdrant vector search engine
5051
- **[Raygun](https://github.com/MindscapeHQ/mcp-server-raygun)** - Access crash reporting and monitoring data
5152
- **[Search1API](https://github.com/fatwang2/search1api-mcp)** - Unified API for search, crawling, and sitemaps

docs/quickstart/client.mdx

Lines changed: 52 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -560,13 +560,13 @@ async connectToServer(serverScriptPath: string) {
560560
? "python"
561561
: "python3"
562562
: process.execPath;
563-
563+
564564
this.transport = new StdioClientTransport({
565565
command,
566566
args: [serverScriptPath],
567567
});
568568
this.mcp.connect(this.transport);
569-
569+
570570
const toolsResult = await this.mcp.listTools();
571571
this.tools = toolsResult.tools.map((tool) => {
572572
return {
@@ -1370,7 +1370,7 @@ If you see:
13701370
</Tab>
13711371

13721372
<Tab title="C#">
1373-
[You can find the complete code for this tutorial here.](https://github.io/modelcontextprotocol/csharp-sdk/tree/main/samples/QuickstartClient)
1373+
[You can find the complete code for this tutorial here.](https://github.com/modelcontextprotocol/csharp-sdk/tree/main/samples/QuickstartClient)
13741374

13751375
## System Requirements
13761376
Before starting, ensure your system meets these requirements:
@@ -1403,14 +1403,19 @@ dotnet user-secrets set "ANTHROPIC_API_KEY" "<your key here>"
14031403

14041404
## Creating the Client
14051405
### Basic Client Structure
1406-
First, let's setup the basic client class:
1406+
First, let's setup the basic client class in the file `Program.cs`:
14071407
```csharp
1408+
using Anthropic.SDK;
1409+
using Microsoft.Extensions.AI;
14081410
using Microsoft.Extensions.Configuration;
14091411
using Microsoft.Extensions.Hosting;
1412+
using ModelContextProtocol.Client;
1413+
using ModelContextProtocol.Protocol.Transport;
14101414
1411-
var builder = Host.CreateEmptyApplicationBuilder(settings: null);
1415+
var builder = Host.CreateApplicationBuilder(args);
14121416
14131417
builder.Configuration
1418+
.AddEnvironmentVariables()
14141419
.AddUserSecrets<Program>();
14151420
```
14161421

@@ -1419,47 +1424,46 @@ This creates the beginnings of a .NET console application that can read the API
14191424
Next, we'll setup the MCP Client:
14201425

14211426
```csharp
1422-
var (command, arguments) = args switch
1423-
{
1424-
[var script] when script.EndsWith(".py") => ("python", script),
1425-
[var script] when script.EndsWith(".js") => ("node", script),
1426-
[var script] when Directory.Exists(script) || (File.Exists(script) && script.EndsWith(".csproj")) => ("dotnet", $"run --project {script} --no-build"),
1427-
_ => throw new NotSupportedException("An unsupported server script was provided. Supported scripts are .py, .js, or .csproj")
1428-
};
1427+
var (command, arguments) = GetCommandAndArguments(args);
14291428
1430-
await using var mcpClient = await McpClientFactory.CreateAsync(new()
1429+
var clientTransport = new StdioClientTransport(new()
14311430
{
1432-
Id = "demo-server",
14331431
Name = "Demo Server",
1434-
TransportType = TransportTypes.StdIo,
1435-
TransportOptions = new()
1436-
{
1437-
["command"] = command,
1438-
["arguments"] = arguments,
1439-
}
1432+
Command = command,
1433+
Arguments = arguments,
14401434
});
14411435
1436+
await using var mcpClient = await McpClientFactory.CreateAsync(clientTransport);
1437+
14421438
var tools = await mcpClient.ListToolsAsync();
14431439
foreach (var tool in tools)
14441440
{
14451441
Console.WriteLine($"Connected to server with tools: {tool.Name}");
14461442
}
14471443
```
1448-
<Note>
1449-
Be sure to add the `using` statements for the namespaces:
1444+
1445+
Add this function at the end of the `Program.cs` file:
1446+
14501447
```csharp
1451-
using ModelContextProtocol.Client;
1452-
using ModelContextProtocol.Protocol.Transport;
1448+
static (string command, string[] arguments) GetCommandAndArguments(string[] args)
1449+
{
1450+
return args switch
1451+
{
1452+
[var script] when script.EndsWith(".py") => ("python", args),
1453+
[var script] when script.EndsWith(".js") => ("node", args),
1454+
[var script] when Directory.Exists(script) || (File.Exists(script) && script.EndsWith(".csproj")) => ("dotnet", ["run", "--project", script, "--no-build"]),
1455+
_ => throw new NotSupportedException("An unsupported server script was provided. Supported scripts are .py, .js, or .csproj")
1456+
};
1457+
}
14531458
```
1454-
</Note>
14551459

1456-
This configures a MCP client that will connect to a server that is provided as a command line argument. It then lists the available tools from the connected server.
1460+
This creates a MCP client that will connect to a server that is provided as a command line argument. It then lists the available tools from the connected server.
14571461

14581462
### Query processing logic
14591463
Now let's add the core functionality for processing queries and handling tool calls:
14601464

14611465
```csharp
1462-
using IChatClient anthropicClient = new AnthropicClient(new APIAuthentication(builder.Configuration["ANTHROPIC_API_KEY"]))
1466+
using var anthropicClient = new AnthropicClient(new APIAuthentication(builder.Configuration["ANTHROPIC_API_KEY"]))
14631467
.Messages
14641468
.AsBuilder()
14651469
.UseFunctionInvocation()
@@ -1472,29 +1476,34 @@ var options = new ChatOptions
14721476
Tools = [.. tools]
14731477
};
14741478
1475-
while (true)
1476-
{
1477-
Console.WriteLine("MCP Client Started!");
1478-
Console.WriteLine("Type your queries or 'quit' to exit.");
1479-
1480-
string? query = Console.ReadLine();
1479+
Console.ForegroundColor = ConsoleColor.Green;
1480+
Console.WriteLine("MCP Client Started!");
1481+
Console.ResetColor();
14811482
1483+
PromptForInput();
1484+
while(Console.ReadLine() is string query && !"exit".Equals(query, StringComparison.OrdinalIgnoreCase))
1485+
{
14821486
if (string.IsNullOrWhiteSpace(query))
14831487
{
1488+
PromptForInput();
14841489
continue;
14851490
}
1486-
if (string.Equals(query, "quit", StringComparison.OrdinalIgnoreCase))
1487-
{
1488-
break;
1489-
}
14901491
1491-
var response = anthropicClient.GetStreamingResponseAsync(query, options);
1492-
1493-
await foreach (var message in response)
1492+
await foreach (var message in anthropicClient.GetStreamingResponseAsync(query, options))
14941493
{
1495-
Console.Write(message.Text);
1494+
Console.Write(message);
14961495
}
14971496
Console.WriteLine();
1497+
1498+
PromptForInput();
1499+
}
1500+
1501+
static void PromptForInput()
1502+
{
1503+
Console.WriteLine("Enter a command (or 'exit' to quit):");
1504+
Console.ForegroundColor = ConsoleColor.Cyan;
1505+
Console.Write("> ");
1506+
Console.ResetColor();
14981507
}
14991508
```
15001509

@@ -1516,7 +1525,8 @@ while (true)
15161525
* The server processes the query and returns a response.
15171526
* The response is displayed to the user.
15181527

1519-
### Running the Client
1528+
## Running the Client
1529+
15201530
To run your client with any MCP server:
15211531
```bash
15221532
dotnet run -- path/to/server.csproj # dotnet server

0 commit comments

Comments
 (0)