MCP示例项目

一个用于学习MCP概念的C# ASP.NET Core示例项目,提供工具调用和列表查询功能。

  • by hihotz
  • C#
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 hihotz/MCP_Sample

使用说明

MCP_样本

C# ASP.用NET Core创建MCP Sample

在开始项目之前

该项目是为学习MCP概念而创建的项目。

使用Codex 5.3版本创建了示例项目,并使用.net10版本

启动项目

使用VS Code时在终端输入以下命令

# 경로 지정이 안된 경우,
cd 프로젝트 경로

# 프로젝트 시작 (Aspire 프로젝트 시작)
dotnet run --project MCP_Sample.AppHost

MCP测试方法

可以按照initialize->tools/list->tools/call的顺序进行测试

在VS Code终端上编写以下代码进行测试。但是,服务器运行一次,其余项目必须在不同的终端上运行

另外,下面的本地主机(http://127.0.0.1:5198)将其更改为服务器的实际运动位置

  1. 运行服务器
dotnet run --project MCP_Sample\MCP_Sample.csproj --urls http://127.0.0.1:5198
  1. initialize(创建会话)
$headers = @{
  Accept = "application/json, text/event-stream"
  "MCP-Protocol-Version" = "2025-06-18"
}
$initBody = '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-06-18","capabilities":{},"clientInfo":{"name":"manual-test","version":"1.0"}}}'
$r = Invoke-WebRequest -Uri "http://127.0.0.1:5198/" -Method Post -Headers $headers -ContentType "application/json" -Body $initBody
$r.Content
$session = $r.Headers["Mcp-Session-Id"]
$session
  1. tools/list(查看tools列表)
$headers["Mcp-Session-Id"] = $session
$listBody = '{"jsonrpc":"2.0","id":2,"method":"tools/list","params":{}}'
(Invoke-WebRequest -Uri "http://127.0.0.1:5198/" -Method Post -Headers $headers -ContentType "application/json" -Body $listBody).Content

测试/使用实际tools功能时,按如下方式调用

# multiply(곱하기)
$callBody = '{"jsonrpc":"2.0","id":3,"method":"tools/call","params":{"name":"multiply","arguments":{"a":6,"b":7}}}'
(Invoke-WebRequest -Uri "http://127.0.0.1:5198/" -Method Post -Headers $headers -ContentType "application/json" -Body $callBody).Content

# divide(나누기)
$callBody = '{"jsonrpc":"2.0","id":4,"method":"tools/call","params":{"name":"divide","arguments":{"a":10,"b":4}}}'
(Invoke-WebRequest -Uri "http://127.0.0.1:5198/" -Method Post -Headers $headers -ContentType "application/json" -Body $callBody).Content

许可证