
Akshare mcp server
集成 AKShare 提供中国和全球市场的实时金融数据和分析工具,支持股票、基金、债券、期货、外汇和宏观经济数据查询,为投资决策提供支持。
概述
AKShare MCP 服务器
一个使用 AKShare 库提供金融数据分析能力的 Model Context Protocol (MCP) 服务器。
特性
- 通过 AKShare 访问中国和全球金融市场数据
- 通过 MCP 协议与 Claude Desktop 集成
- 支持各种金融数据查询和分析
安装
使用 uv(推荐)
bash
# 克隆仓库
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 .
使用 pip
bash
# 克隆仓库
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 .
使用
运行服务器
bash
# 激活虚拟环境
source venv/bin/activate # 在 Windows 上: venv\Scripts\activate
# 运行服务器
python run_server.py
与 Claude Desktop 集成
- 在你的 Claude Desktop 配置中添加以下配置:
json
"mcpServers": {
"akshare-mcp": {
"command": "uv",
"args": [
"--directory",
"/path/to/akshare_mcp_server",
"run",
"akshare-mcp"
],
"env": {
"AKSHARE_API_KEY": "<your_api_key_if_needed>"
}
}
}
- 重启 Claude Desktop
- 从可用工具中选择 AKShare MCP 服务器
可用工具
AKShare MCP 服务器提供以下工具:
- 股票数据查询
- 基金数据查询
- 债券数据查询
- 期货数据查询
- 外汇数据查询
- 宏观经济数据查询
- 等等...
添加新工具
要向 MCP 服务器添加新工具,请按照以下步骤操作:
-
在
src/mcp_server_akshare/api.py
中添加一个新的 API 函数:pythonasync 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
中将新工具添加到枚举中:pythonclass AKShareTools(str, Enum): # 已有工具... NEW_TOOL_NAME = "new_tool_name"
-
在
src/mcp_server_akshare/server.py
中导入新函数:pythonfrom .api import ( # 已有导入... fetch_new_data_function, )
-
在
handle_list_tools()
函数中添加工具定义:pythontypes.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()
函数中添加工具处理程序:pythoncase 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, )
-
通过运行服务器并请求新工具来测试新工具。
开发
bash
# 安装开发依赖
uv pip install -e ".[dev]"
# 运行测试
pytest
Docker
你也可以使用 Docker 运行服务器:
bash
# 构建 Docker 镜像
docker build -t akshare-mcp-server .
# 运行 Docker 容器
docker run -p 8000:8000 akshare-mcp-server
许可证
MIT