一个使用AKShare库提供金融数据分析能力的模型上下文协议(MCP)服务器。
# 克隆仓库
git clone https://github.com/yourusername/akshare_mcp_server.git
cd akshare_mcp_server
# 创建并激活虚拟环境
python -m venv venv
source venv/bin/activate # 在Windows上:venv\Scripts\activate
# 使用uv安装依赖
uv pip install -e .
# 克隆仓库
git clone https://github.com/yourusername/akshare_mcp_server.git
cd akshare_mcp_server
# 创建并激活虚拟环境
python -m venv venv
source venv/bin/activate # 在Windows上:venv\Scripts\activate
# 安装依赖
pip install -e .
# 激活虚拟环境
source venv/bin/activate # 在Windows上:venv\Scripts\activate
# 运行服务器
python run_server.py
"mcpServers": {
"akshare-mcp": {
"command": "uv",
"args": [
"--directory",
"/path/to/akshare_mcp_server",
"run",
"akshare-mcp"
],
"env": {
"AKSHARE_API_KEY": "<your_api_key_if_needed>"
}
}
}
AKShare MCP服务器提供了以下工具:
要向MCP服务器添加新工具,请按照以下步骤操作:
在src/mcp_server_akshare/api.py中添加新的API函数:
async def fetch_new_data_function(param1: str, param2: str = "default") -> List[Dict[str, Any]]:
"""
获取新的数据类型。
参数:
param1: param1的描述
param2: param2的描述
"""
try:
df = ak.akshare_function_name(param1=param1, param2=param2)
return dataframe_to_dict(df)
except Exception as e:
logger.error(f"获取新数据时出错: {e}")
raise
在src/mcp_server_akshare/server.py中的枚举中添加新工具:
class AKShareTools(str, Enum):
# 已有工具...
NEW_TOOL_NAME = "new_tool_name"
在src/mcp_server_akshare/server.py中导入新函数:
from .api import (
# 已有导入...
fetch_new_data_function,
)
在handle_list_tools()函数中添加工具定义:
types.Tool(
name=AKShareTools.NEW_TOOL_NAME.value,
description="新工具的描述",
inputSchema={
"type": "object",
"properties": {
"param1": {"type": "string", "description": "param1的描述"},
"param2": {"type": "string", "description": "param2的描述"},
},
"required": ["param1"], # 列出必需参数
},
),
在handle_call_tool()函数中添加工具处理器:
case AKShareTools.NEW_TOOL_NAME.value:
param1 = arguments.get("param1")
if not param1:
raise ValueError("缺少必需参数:param1")
param2 = arguments.get("param2", "default")
result = await fetch_new_data_function(
param1=param1,
param2=param2,
)
测试新工具,运行服务器并请求新工具。
# 安装开发依赖
uv pip install -e ".[dev]"
# 运行测试
pytest
你也可以使用Docker运行服务器:
# 构建Docker镜像
docker build -t akshare-mcp-server .
# 运行Docker容器
docker run -p 8000:8000 akshare-mcp-server
MIT