股票价格查询服务

一个简单的MCP服务器示例,用于查询股票价格,支持GCP Cloud Run部署。

  • by bmullan-code
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 bmullan-code/stock-mcp

使用说明

库存-MCP(或“库存-多通道协议”,具体翻译取决于MCP在此上下文中的具体含义)

一个简单的MCP服务器示例,附带在GCP Cloud Run上的部署说明。

服务器获取股票价格函数来自Bo Yang的“2分钟Adk” 文章

设置

安装 gcloud 命令行界面(CLI) https://cloud.google.com/sdk/docs/install 的中文翻译为:https://cloud.google.com/sdk/docs/install(该网址本身为英文,但说明其内容为关于安装Google Cloud SDK的文档) 并使用(某种方式)进行身份验证

gcloud auth application-default login

设置Python环境

# setup python environment
python -m venv .venv
pip install uv
pip install -r requirements.txt

构建与部署

在GCP控制台中,转到Artifact Registry并找到或创建一个工件(Docker)仓库。复制仓库的路径。路径看起来会像这样:

{region}/{project-id}/{repo-name}
eg. 
us-central1-docker.pkg.dev/mullan-gmail-com/cloud-run-source-deploy

使用以下命令构建容器并部署到Cloud Run

# replace with your repo
export repo=us-central1-docker.pkg.dev/mullan-gmail-com/cloud-run-source-deploy
export image=$repo/stock-mcp

# build
gcloud builds submit --region=us-central1 --tag $image

# deploy 
gcloud run deploy stock-mcp --region=us-central1 --no-allow-unauthenticated --image $image 

客户

使用client.py客户端测试服务器。

获取服务器URL

export url=$(gcloud run services describe stock-mcp --format="value(status.url)" --region=us-central1)

获取身份令牌以进行身份验证

export token=$(gcloud auth print-identity-token)

运行客户端

uv run client.py

输出。。。

CallToolResult(content=[TextContent(type='text', text='237.49', annotations=None, meta=None)], structured_content={'result': 237.49}, data=237.49, is_error=False)

使用代理进行身份验证

作为使用身份令牌的一种替代方案,您可以运行云运行代理并无需令牌即可连接到它。

gcloud run services proxy stock-mcp --port=8080 --region=us-central1

export url=http://localhost:8080
export token=

uv run client.py

代理

代理目录中包含一个代理示例,用于测试我们的MCP服务器。

设置

编辑 agent/.env-template 文件,设置您的 GCP 项目 ID,并将其复制到 agent/.env

cp agent/.env-template agent/.env

运行ADK网络用户界面

adk web

然后浏览至 http://localhost:8000

在代理聊天中提出一些与股票相关的问题;你应该能看到工具调用我们的MCP服务器。你可以检查输入和输出。