Avanza MCP Server

使用说明(Markdown格式)

  • 项目简介

    • 该项目实现了一个基于 MCP 的服务器,旨在向 MCP 客户端(如大型语言模型的集成应用)提供结构化的市场数据上下文服务。核心职责包括托管资源 (Resources)、注册并执行工具 (Tools)、定义并渲染提示模板 (Prompts)。服务器通过 JSON-RPC 与客户端通信,处理读取资源、调用工具、获取 Prompts 等请求,并返回标准化的 JSON-RPC 响应。
  • 主要功能点

    • 资源管理:提供 instrument、fund、documentation 等资源的渲染与访问接口,便于 LLM 以标准化方式获取信息。
    • 工具注册与执行:实现覆盖股票、基金、ETF、期货/前瞻等领域的大量工具,LLM 可以通过工具调用获取数据、执行查询与分析。
    • 提示模板:提供分析、工作流等多种 Prompt 模板,帮助 AI 客户端以规范化方式组织对话与任务执行。
    • JSON-RPC 交互:遵循 MCP 的请求/响应结构,支持会话管理、能力声明和多传输协议(如 Stdio、SSE、WebSocket)的扩展。
    • 后端与外部 API 的对接:通过 Avanza 的公开 API 获取市场数据,并将结果以 MCP 模型化的结构返回给客户端。
    • 可扩展性:模块化设计(prompts、resources、tools、services、models 等)便于进一步扩展和自定义。
  • 安装步骤

    • 克隆仓库并安装所需依赖(需要 Python 环境)。
    • 安装依赖后,在项目根目录下准备环境,确保能以 Python 跑通服务器入口。
    • 启动服务器时,确保入口入口点可被 MCP 客户端(如 Claude Desktop)通过配置调用。
  • 服务器配置(MCP 客户端所需的最小配置信息) 为 MCP 客户端提供的配置示例(JSON 格式)如下。该配置用于指向本仓库实现的 MCP 服务器并给出启动命令及参数,便于客户端建立连接。请将下列配置保存为客户端读取的配置文件的一部分,或按需求嵌入到你的应用配置中。

{ "mcpServers": { "avanza": { "name": "Avanza MCP Server", "command": "uvx", "args": ["--prerelease=allow", "avanza-mcp"] }

} } 注释说明:

  • 该配置指定一个名为 avanza 的 MCP 服务器入口。

  • command 为启动 MCP 服务的可执行命令(示例中使用 uvx)。

  • args 为启动参数,其中 --prerelease=allow 是仓库 README/配置建议的参数,用于兼容 fastmcp 的测试/预发布版本。

  • MCP 客户端并不需要额外的身份凭证(公开数据接口),符合 Avanza 公共 API 的使用场景。

  • 基本使用方法

    • 启动服务器后,MCP 客户端(如 Claude Desktop 等)可以通过调用注册的工具、资源和 prompts 来与 Avanza 的公开数据进行交互。
    • 你可以从工具集合中调用诸如 get_stock_info、get_stock_quote、list_futures_forwards、filter_etfs 等,或通过资源 URI(avanza://stock/{id}、avanza://fund/{id} 等)获取格式化的 Markdown 信息。
    • 使用 prompts 时,LLM 可以根据分析、比较、筛选等工作流程,生成一致的对话和查询路径。
  • 运行与扩展

    • 服务器代码已实现核心 MCP 功能:资源、工具、提示的注册与暴露,以及与 Avanza 公共 API 的连接。
    • 如需扩展,请在相同结构下新增工具、资源或提示模板,并通过相应的装饰器 (@mcp.tool、@mcp.resource、@mcp.prompt) 注册即可。

服务器信息