使用说明
MCP研讨会
引言
我们将把MCP添加到现有的两个API中。API-et lar en vice,oprette,redigere og slette opggaver。例如,我们打算这样做。GitHub Copilot用于跨会话处理任务。
如果你被卡住了,请查看中的提交历史记录 解决方案行业.
任务-1:基本发现
- Klon回购:
git clone https://github.com/tmaregge/MCP-workshop.git - 安装软件包 :
dotnet add package ModelContextProtocol --prerelease dotnet add package ModelContextProtocol.AspNetCore --prerelease dotnet add package Microsoft.Extensions.Hosting - 驱动B-迁移:
dotnet tool install -g dotnet-ef dotnet ef database update - Bygg løsning og kjør
- 设置几周。
任务0:设置MCP
⚙️ 配置项目
添加以下内容 builder 我 Program.cs:
builder.Services
.AddMcpServer()
.WithHttpTransport()
.WithToolsFromAssembly();
.HttpTransport() 指定MCP应在HTTP端点可用。 .WithToolsFromAssembly() 按照我们在项目中定义的工具自动可用。另一种选择是由专业工程师和工程师组成 .WithTools<IFooTool>().
为了使MCP端可用,我们需要将其归档:
app.MapMcp("/mcp");
📁 映射结构
在项目中保持以下结构:
/MCP
/Tools
TodoTool.cs
🧩 TodoTool.cs
打开文件 TodoTool.cs 内容如下:
using System.ComponentModel;
using ModelContextProtocol.Server;
namespace TodoApi.MCP.Tools;
[McpServerToolType]
public class TodoTool
{
[McpServerTool, Description("Test")]
public static string Echo(string message) => $"hello {message}";
}
🧪 MCP检验员
MCP检查员er et nyttig verktøy foråfeilsøke MCP。您可能需要安装 npm/npx如果你以前没有。
启动程序vedåkjøre følgende kommando fra prosjekets rotmappe:
npx @modelcontextprotocol/inspector dotnet run
然后选择:
- 运输类型:
Streamable HTTP - 网址:
http://localhost:5056/mcp
按 连接.
现在,您可以列出工具并调用它们。试着开车 Echo-alt fungerer的åverifier工具集。
🧠 将MCP服务器连接到IDE
要在IDE中通过GitHub Copilot使用我们的MCP工具,必须对其进行配置。基于IDE,这有点不同,但这意味着要建立一个 mcp.json-文件,告诉如何访问MCP服务器。这里还配置了外部MCP服务器(例如GitHub MCP)。
VS Code
- 按
CTRL + Shift + P - Velg MCP:添加服务器
- Velg 超文本传输协议
- 写进去。
http://localhost:5056/mcp
JetBrains骑手
- 打开 副驾驶
- 激活 代理模式
- 推。 verktøysymbolet → 添加更多工具
这打开了。 intellij/mcp.json (i应用数据)。
限制以下配置(与VS代码一样):
{
"inputs": [],
"servers": {
"TodoMcpServer": {
"url": "http://localhost:5056/mcp"
}
}
}
🚀 推动项目。
Bygg og启动项目:
dotnet build
dotnet run
项目运行时:
- 推。 工具符号 在Copilot Chat窗口中查找
Echo-工具。Huk av boksen。 - 在Rider中,按下。 配置模型访问权限 确保模型可以访问这些工具。
- 告诉Copilot在自愿输入的情况下调用工具。
- 利润
任务1:todo-API的滞后工具
在这项任务中,您将添加一些工具,以便与todo API进行交互。
使用以下方法 ITodoRepository 实施工具以执行以下操作:
- 为给定用户显示两次
- Opplete todo
- 周末
- 更新一周的新信息
我希望你能保持功能易于上手。每次都可以添加更高级的过滤和类似功能。看看代理能够用相对简单的工具做什么!
Når du er ferdig medålage工具可用于测试:
- 分解特定任务中的功能
- 总结最重要的任务。
- 根据以下因素分配优先事项
- 与给定主题/标签相关的周列表
- 删除两周完成。
💡 提示:
- 在使用 Copilot 之前使用 MCP Inspector 测试工具
- 使用API周的顺序来建立数据并验证工作是否正常。
- 箱子
McpException当你想向用户显示错误时 - 如果Copilot中没有显示工具,则必须重新启动MCP连接。在VS Code中,您可以在
mcp.json文件
任务2:发出提示
MCP服务器可以定义术语 Prompts 有些人可以通过特工联系我。这些用于写作 / 后跟提示名称,例如。 /list 获得一个可用于列出两周的提示。提示可用于定义正常工作的歌词,为了减少你需要写的文本量,霍夫登律师事务所代理科姆比纳斯琼等。
打开文件 MCP/Prompts/TodoPrompts.cs 地毯铺开了。以下是一个示例 文档:
[McpServerPromptType]
public static class MyPrompts
{
[McpServerPrompt, Description("Creates a prompt to summarize the provided message.")]
public static ChatMessage Summarize([Description("The content to summarize")] string content) =>
new(ChatRole.User, $"Please summarize this content into a single sentence: {content}");
}
函数返回1 ChatMessage-当您写作时,在Copilot聊天框中粘贴一条消息的对象。 /summarize您可以返回一个列表 ChatMessage 以模拟对话。例如,您可以使用以下命令输入系统提示 ChatRole.System.
以下是一些你可以迅速采取行动的例子:
- 与相关事项相对滞后(坤tittel,feks)
- 详细报告本周的工作(执行了什么以及何时完成)
- 根据优先级排序两次,并使用表情符号表示不同级别
- 不管你怎么想。?只有幻想设置边界✋🌈🤚
💡 提示:
- 要公开Prompts,您必须调用
.WithPromptsFromAssembly()i服务构建器en - 与工具一样,您可能需要重新启动MCP连接才能显示。
表3:启发
启发式允许MCP服务器要求用户提供额外的输入。Dersom Elimination触发了弹出的医学信息。
要在给定的工具中添加激励步骤,您必须执行以下操作:
- 添加
McpServer通过依赖注入作为函数参数 - 定义如何携带信息
ElicitRequestParams.RequestSchema - 卡尔
McpServer.ElicitAsync使用定义的模式
编解码器可用于此 文章,男人legg merke直到 IMcpServer 为了利益而弃用 McpServer.
使用Elicitation执行以下操作:
- 祈祷用户辞职
Creator和Title如果丢失 - 通过删除以下两周来请求额外确认
Priority呃High或Urgent - 还有其他很酷的想法吗?-什么?😉
表4:身份验证(nørds的奖金🤓)
目前API的安全性为零。我们可以通过发送一个关键名称来查看和编辑其他人被使用了两次 Creator在请求和数据库对象上放置标志,以防止不称职的访问。蒂尔冈。
如果你已经走了这么远,你不需要太多的帮助,但这里有一个。 有用的物品 😉
双重奖励:通过HTTPS而不是HTTP公开两个API。
