小贴士:按下Ctrl+D 或 ⌘+D,一键收藏本站,方便下次快速访问!
17
最近更新:2个月前

集成 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 集成

  1. 在你的 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>"
        }
    }
}
  1. 重启 Claude Desktop
  2. 从可用工具中选择 AKShare MCP 服务器

可用工具

AKShare MCP 服务器提供以下工具:

  • 股票数据查询
  • 基金数据查询
  • 债券数据查询
  • 期货数据查询
  • 外汇数据查询
  • 宏观经济数据查询
  • 等等...

添加新工具

要向 MCP 服务器添加新工具,请按照以下步骤操作:

  1. src/mcp_server_akshare/api.py 中添加一个新的 API 函数

    python 复制代码
    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
  2. src/mcp_server_akshare/server.py 中将新工具添加到枚举中

    python 复制代码
    class AKShareTools(str, Enum):
        # 已有工具...
        NEW_TOOL_NAME = "new_tool_name"
  3. src/mcp_server_akshare/server.py 中导入新函数

    python 复制代码
    from .api import (
        # 已有导入...
        fetch_new_data_function,
    )
  4. handle_list_tools() 函数中添加工具定义

    python 复制代码
    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"],  # 列出必需参数
        },
    ),
  5. handle_call_tool() 函数中添加工具处理程序

    python 复制代码
    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,
        )
  6. 通过运行服务器并请求新工具来测试新工具

开发

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