# MCP
# 简单介绍
基于MCP(模型上下文协议),使用MCP客户端工具与自己部署的MCP服务器进行交互
协议官网:https://modelcontextprotocol.io/introduction
目前OpenAI、谷歌、阿里、腾讯等大厂都接入MCP协议,其已成为行业事实上标准协议。故建议使用MCP协议来开发自己的工具、服务,以供Agent、Workflow等使用。

# 添加MCP Server到平台MCP市场
进入MCP市场

添加MCP Server,可以选择全平台公开还是仅工作空间可见,欢迎大家贡献公共MCP,让更多人使用。

查看MCP Server包含的工具列表

# 在平台上使用MCP Server
可以分两种用法:
- 可在Agent中使用,Agent会自主选择用MCP Server中的某个工具
- 直接在Workflow中直接选择MCP Server中的某个工具使用
# 在Agent中使用
点击添加按钮:
选择某个MCP Server:
运行,分析运行过程,符合预期:

# 在Workflow中使用
直接点击添加,工具中选择对应的工具即可:

# 如何将TAF代理成MCP Server
可以通过call平台,将原来的taf服务代理成MCP Server,从而可以在平台上作为MCP工具使用
进入call平台 (opens new window),先确认自己的taf服务能在call平台正常调用,然后点击右侧“MCP配置”

按下图编辑MCP配置,强烈建议使用高级模式指定配置某些参数可见,避免暴露所有参数

按下图编辑MCP工具的参数

点击右上角创建按钮,即完成TAF代理为MCP Server。
如何拼接出MCP Server的URL:
结构:
https://call.huya.info/sse?env={env}&toolName={toolName}
参数:
- env: 环境,prod为正式环境,test为研测环境
- toolName: 工具名称,即MCP Server的名称
示例:
https://call.huya.info/sse?env=prod&toolName=HUYAML::RecommendedSearchServant::search
添加MCP到LLM平台,点击创建

按提示填写前面的URL,即可

在各个workflow或agent使用,可参考本页前面部分
# 扩展
# 开发自己的MCP Server
可参考demo示例,或者联系管理员:
https://git.huya.info/ai-platform/haicong-hai/mcp-demos
# 托管自己的MCP Server
TODO: 持续更新中
# MCP Server中如何获取实际访问的用户OA ID
有些情况下需要认证访问来源的真实用户是谁,可以通过此方式鉴别
当用户使用web-app访问您的应用时,可通过请求头中的x-haicong-llm-operator获取用户的OA ID。
以下是Python SDK示例
from mcp.server.fastmcp import FastMCP
from mcp.server.fastmcp import Context
# Create an MCP server
mcp = FastMCP("Demo", host="your host", port="your port")
@mcp.tool()
def demo(param: Any, ctx: Context) -> str:
"""Get oa id from request header"""
request_object = ctx.request_context.request
assert request_object is not None
assert hasattr(request_object, "headers")
headers: dict[str, str] = request_object.headers
oa_id = headers.get("x-haicong-llm-operator") # 不带dw_
...