当前位置: 首页 > news >正文

vscode集成MCP Server

前言

本文介绍如何在 VS Code 中集成自行开发的 MCP (Model Context Protocol) Server。通过配置 .vscode/mcp.json 文件,可以将自定义的 MCP Server 注册到 VS Code 的 GitHub Copilot 中,从而让 AI 助手能够调用用户开发的工具函数。整个过程包括:编写 MCP Server 代码、配置服务器启动参数、启动服务并测试调用。

注意,Copilot不是必须的,只是vscode 官方对copilot集成更好,其它第三方的模型也能使用MCP Server。

使用Copilot

  1. 编写数学工具的mcp server. math.py
from fastmcp import FastMCP
from typing import TypeAlias, Union
from datetime import datetimemcp = FastMCP("math")Number: TypeAlias = Union[int, float]@mcp.tool()
def add(a: Number, b: Number) -> Number:"""Add two numbersArgs:a (Number): The first numberb (Number): The second numberReturns:Number: The sum of a and b"""return a + b@mcp.tool()
def subtract(a: Number, b: Number) -> Number:"""Subtract two numbersArgs:a (Number): The first numberb (Number): The second numberReturns:Number: The difference of a and b"""return a - b@mcp.tool()
def multiply(a: Number, b: Number) -> Number:"""Multiply two numbersArgs:a (Number): The first numberb (Number): The second numberReturns:Number: The product of a and b"""return a * b@mcp.tool()
def divide(a: Number, b: Number) -> Number:"""Divide two numbersArgs:a (Number): The numeratorb (Number): The denominatorReturns:Number: The quotient of a and bRaises:ValueError: If b is zero"""if b == 0:raise ValueError("Cannot divide by zero")return a / b@mcp.tool()
def is_greater_than(a: Number, b: Number) -> bool:"""Check if a is greater than bArgs:a (Number): The first numberb (Number): The second numberReturns:bool: True if a is greater than b, False otherwise"""return a > b@mcp.tool()
async def get_weather(city: str) -> str:  """Get weather for a given city.Args:city (str): The city nameReturns:str: A string describing the weather in the given city"""return f"It's always sunny in {city}!"@mcp.tool()
async def get_current_datetime() -> str:"""Get current date and time.Returns:str: The current date and time in YYYY-MM-DD HH:MM:SS %z format"""return datetime.now().strftime("%Y-%m-%d %H:%M:%S %z")if __name__ == "__main__":# mcp.run(transport="http", host="localhost", port=8001, show_banner=False)mcp.run(transport="stdio", show_banner=False)
  1. 创建.vscode/mcp.json
{"servers": {"math": {"command": "uv","args": ["--directory","/home/rainux/Documents/workspace/py-dev/mcp-local","run","math.py"]}}
}
  1. mcp.json文件中会显示一个启动的图标,点击启动。
  2. 在copilot 聊天窗口中,右下角有一个"配置工具"的图标,点击后在弹出的菜单中可以看到一个math server.
  3. 提问测试。如果没调用到mcp tool,可以尝试按Ctrl + Shift + P,输入Reload Window 来重新加载窗口,或者在mcp.json文件中重启mcp server,或者重启vscode.

非Copilot, 以通义灵码为例

在通义灵码的聊天窗口中按提示添加MCP Server 的配置,在手动添加的配置文件中填写如下内容。保存后通义灵码会自动启动MCP Server,然后测试能否调用MCP Tool即可。

{"mcpServers": {"math": {"type": "stdio","command": "uv","args": ["--directory","/home/rainux/Documents/workspace/py-dev/mcp-local","run","math.py"],"env": {"ROOT_DIR": "/home/rainux/Documents/workspace/py-dev/mcp-local"}}}
}

参考

  • VS Code 官方文档 - Use MCP servers in VS Code
http://www.rkmt.cn/news/48789.html

相关文章:

  • 框架架构设计师备考第41天——软件可靠性建模、管理与设计​
  • 奇怪的问题(们)
  • 基于多模态AI技术的传统行业智能化升级路径研究——以开源AI大模型、AI智能名片与S2B2C商城小程序为例 - 实践
  • 2025智慧康养/智慧养老标杆机构推荐榜:教之道五星领跑 实训室建设与虚拟仿真领域 3 家公司凭实力上榜
  • coze 搭建能写文案导出word pdf
  • Siemens PLCSIM V18
  • 《密码系统设计》第十二周预习
  • 1 移动端开发概念与环境准备
  • 八大排序总结
  • (八大排序)快速排序(递归)
  • (八大排序)冒泡排序
  • (八大排序)堆排序
  • #20232329 2025-2026-1 《网络与系统攻防技术》 实验六实验报告
  • (八大排序)希尔排序
  • 壅土(拼音:yōng tǔ)
  • 2025-11-13 早报新闻
  • P14463 【MX-S10-T4】『FeOI-4』呼吸之野
  • 深入解析:Flink 状态和 CheckPoint 的区别和联系(附源码)
  • XCPC 竞赛 Ubuntu 环境 DOMjudge Server 完整配置指南
  • Python迭代器_高级
  • 字符编码体系详解:从ASCII到UTF-8的演进与实践
  • 按位翻转
  • JavaEE--SpringIoC - 详解
  • 2025年比较好的非标设备机架产品推荐排行榜单,非标设备机架公司精选实力品牌榜单发布
  • Codeforces-2148
  • 辽源适配冻干机西林瓶灌装加塞机推荐
  • C#+WPF?​就是工业上位机,用Python+Qt还
  • ITR经典案例 | 燕千云携手国内知名软件供应商,AI驱动客户服务流升级
  • 彻底解决WPS在扩展屏出现的下拉错位现象
  • 丽江小药厂适用半自动西林瓶灌装生产线