返回市场
阿尔法优势

阿尔法优势

作者:calvernaz73 星标更新:2025-11-07

项目介绍

✅ 官方 Alpha Vantage MCP 服务器

smithery 徽章 在 MseeP 上验证

这是一个用于股票市场数据 API 的 MCP 服务器,即 Alphavantage API。

<a href="https://glama.ai/mcp/servers/@calvernaz/alphavantage"> <img width="380" height="200" src="https://gips1.baidu.com/it/u=3260111951,1668260724&fm=3081&app=3081&f=PNG?w=760&h=400" alt="Alpha Vantage Server MCP 服务器" /> </a>

MCP 服务器 URL: https://mcp.alphavantage.co

PyPi: https://pypi.org/project/alphavantage-mcp/

配置

获取 API 密钥

  1. 注册一个 免费的 Alphavantage API 密钥
  2. 将 API 密钥添加到环境变量中,命名为 ALPHAVANTAGE_API_KEY

安装

方案 1:使用 uvx(推荐)

使用 AlphaVantage MCP 服务器最简单的方法是通过 uvx

# 直接运行而不安装
uvx alphavantage-mcp

# 或者带有特定参数
uvx alphavantage-mcp --server http --port 8080

方案 2:使用 pip

pip install alphavantage-mcp
alphavantage-mcp

方案 3:从源代码

git clone https://github.com/calvernaz/alphavantage.git
cd alphavantage
uv run alphavantage

服务器模式

AlphaVantage 服务器可以在两种不同的模式下运行:

标准 I/O 服务器(默认)

这是用于工具如 Claude Desktop 的标准 MCP 服务器模式。

alphavantage
# 或者明确指定:
alphavantage --server stdio

可流式传输的 HTTP 服务器

此模式通过 HTTP 流传输提供实时更新。

alphavantage --server http --port 8080

带有 OAuth 2.1 认证的可流式传输 HTTP 服务器

此模式为 HTTP 服务器添加了 OAuth 2.1 认证,遵循 MCP 规范以确保安全访问。

alphavantage --server http --port 8080 --oauth

OAuth 配置

当使用 --oauth 标志时,服务器需要通过环境变量进行 OAuth 2.1 配置:

必需的环境变量:

export OAUTH_AUTHORIZATION_SERVER_URL="https://your-auth-server.com/realms/your-realm"
export OAUTH_RESOURCE_SERVER_URI="https://your-mcp-server.com"

可选的环境变量:

# 令牌验证方法(默认:jwt)
export OAUTH_TOKEN_VALIDATION_METHOD="jwt"  # 或 "introspection"

# 对于 JWT 验证
export OAUTH_JWT_PUBLIC_KEY="-----BEGIN PUBLIC KEY-----\n...\n-----END PUBLIC KEY-----"
export OAUTH_JWT_ALGORITHM="RS256"  # 默认值

# 对于令牌内省验证
export OAUTH_INTROSPECTION_ENDPOINT="https://your-auth-server.com/realms/your-realm/protocol/openid-connect/token/introspect"
export OAUTH_INTROSPECTION_CLIENT_ID="your-client-id"
export OAUTH_INTROSPECTION_CLIENT_SECRET="your-client-secret"

# 可选:所需范围(空格分隔)
export OAUTH_REQUIRED_SCOPES="mcp:access mcp:read"

# 可选:启用会话绑定以增加安全性(默认:true)
export OAUTH_SESSION_BINDING_ENABLED="true"

OAuth 功能

OAuth 实现提供了:

  • OAuth 2.0 受保护资源元数据端点(/.well-known/oauth-protected-resource
  • Bearer 令牌认证用于所有 MCP 请求
  • JWT 和令牌内省验证方法
  • MCP 安全最佳实践合规性:
    • 令牌受众验证(防止令牌传递攻击)
    • 使用安全会话 ID 防止会话劫持
    • 用户绑定会话以增加安全性
    • 正确的 WWW-Authenticate 头部用于 401 响应

示例:Keycloak 配置

对于测试使用 Keycloak:

# Keycloak OAuth 配置
export OAUTH_AUTHORIZATION_SERVER_URL="https://keycloak.example.com/realms/mcp-realm"
export OAUTH_RESOURCE_SERVER_URI="https://mcp.example.com"
export OAUTH_TOKEN_VALIDATION_METHOD="introspection"
export OAUTH_INTROSPECTION_ENDPOINT="https://keycloak.example.com/realms/mcp-realm/protocol/openid-connect/token/introspect"
export OAUTH_INTROSPECTION_CLIENT_ID="mcp-server"
export OAUTH_INTROSPECTION_CLIENT_SECRET="your-keycloak-client-secret"
export OAUTH_REQUIRED_SCOPES="mcp:access"

# 启动带有 OAuth 的服务器
alphavantage --server http --port 8080 --oauth

OAuth 客户端流程

当启用 OAuth 时,MCP 客户端必须:

  1. 发现授权服务器通过 GET /.well-known/oauth-protected-resource
  2. 注册与授权服务器(如果使用动态客户端注册)
  3. 获取访问令牌从授权服务器
  4. 包含令牌在请求中:Authorization: Bearer <access-token>
  5. 处理 401/403 响应并根据需要刷新令牌

选项:

  • --server: 在 stdio(默认)或 http 服务器模式之间选择
  • --port: 指定可流式传输的 HTTP 服务器端口(默认:8080)
  • --oauth: 启用 OAuth 2.1 认证(需要 --server http

📊 监控

AlphaVantage MCP 服务器包括可选的 Prometheus 指标,用于监控和可观测性。

启用监控

设置以下环境变量以启用监控:

# 启用监控(默认:true)
export MCP_TELEMETRY_ENABLED=true

# 服务器标识(可选)
export MCP_SERVER_NAME=alphavantage
export MCP_SERVER_VERSION=1.0.0

# 指标服务器端口(默认:9464)
export MCP_METRICS_PORT=9464

指标端点

当启用监控时,Prometheus 指标可在以下位置获得:

http://localhost:9464/metrics

可用指标

服务器收集每个工具调用的以下指标:

  • mcp_tool_calls_total - 工具调用总数(按工具和结果标记)
  • mcp_tool_latency_seconds - 工具执行延迟直方图
  • mcp_tool_request_bytes - 请求负载大小直方图
  • mcp_tool_response_bytes - 响应负载大小直方图
  • mcp_tool_active_concurrency - 活跃并发工具调用量表
  • mcp_tool_errors_total - 按类型总计的错误(超时、输入错误、连接错误、未知错误)

使用示例带监控

# 启动带有监控的服务器
export MCP_TELEMETRY_ENABLED=true
export MCP_SERVER_NAME=alphavantage-prod
export ALPHAVANTAGE_API_KEY=your_api_key
alphavantage --server http --port 8080

# 查看指标
curl http://localhost:9464/metrics

🚀 AWS 无服务器部署

使用无状态 MCP 模式在 AWS Lambda 上部署 AlphaVantage MCP 服务器,实现生产就绪且可扩展的部署。

快速 AWS 部署

cd deploy/aws-stateless-mcp-lambda
export ALPHAVANTAGE_API_KEY=your_api_key_here
./deploy.sh

特性:

  • 无状态 MCP 模式 - 完美适用于 Lambda 的执行模型
  • 自动扩展 - 使用 AWS Lambda + API Gateway 处理任何负载
  • 成本效益 - 按需付费(典型使用情况下每月约 $1-5)
  • 生产就绪 - 基于 AWS 官方样本模式
  • OAuth 2.1 支持 - 可选认证以确保安全访问

📖 完整文档: 请参阅 AWS 部署指南 以获取完整的设置说明、测试、监控和故障排除信息。

与 Claude Desktop 结合使用

方案 1:使用 uvx(推荐)

将以下内容添加到您的 claude_desktop_config.json 中:

{
  "mcpServers": {
    "alphavantage": {
      "command": "uvx",
      "args": ["alphavantage-mcp"],
      "env": {
        "ALPHAVANTAGE_API_KEY": "YOUR_API_KEY_HERE"
      }
    }
  }
}

方案 2:从源代码

如果您克隆了仓库,请使用以下配置:

{
  "mcpServers": {
    "alphavantage": {
      "command": "uv",
      "args": [
        "--directory",
        "<DIRECTORY-OF-CLONED-PROJECT>/alphavantage",
        "run",
        "alphavantage"
      ],
      "env": {
        "ALPHAVANTAGE_API_KEY": "YOUR_API_KEY_HERE"
      }
    }
  }
}

在流式传输 HTTP 模式下运行服务器

使用 uvx:

{
  "mcpServers": {
    "alphavantage": {
      "command": "uvx",
      "args": ["alphavantage-mcp", "--server", "http", "--port", "8080"],
      "env": {
        "ALPHAVANTAGE_API_KEY": "YOUR_API_KEY_HERE"
      }
    }
  }
}

从源代码:

{
  "mcpServers": {
    "alphavantage": {
      "command": "uv",
      "args": [
        "--directory",
        "<DIRECTORY-OF-CLONED-PROJECT>/alphavantage",
        "run",
        "alphavantage",
        "--server",
        "http",
        "--port",
        "8080"
      ],
      "env": {
        "ALPHAVANTAGE_API_KEY": "YOUR_API_KEY_HERE"
      }
    }
  }
}

📺 演示视频

观看 Alpha Vantage MCP 服务器的快速演示:

Alpha Vantage MCP 服务器演示

🔧 开发与发布

发布到 PyPI

此项目包括脚本用于发布到 PyPI 和 TestPyPI:

# 发布到 TestPyPI(用于测试)
python scripts/publish.py --test

# 发布到 PyPI(生产)
python scripts/publish.py

# 使用 uv publish 而不是 twine
python scripts/publish.py --test --use-uv

该脚本默认使用 twine(推荐),但也可以使用 uv publish 并带有 --use-uv 标志。

GitHub Actions

该仓库包括一个 GitHub Actions 工作流用于自动化发布:

  • 可信发布:使用 PyPA 的官方发布动作结合 OpenID 连接
  • 手动触发:可以手动触发,并选择 TestPyPI 或 PyPI
  • Twine 回退:支持可信发布和基于 twine 的发布

要设置发布:

  1. 对于可信发布(推荐):

    • 在 PyPI/TestPyPI 上配置可信发布与您的 GitHub 仓库
    • 不需要密钥 - 使用 OpenID 连接
  2. 对于基于令牌的发布

    • 在您的仓库中添加 PYPI_API_TOKENTEST_PYPI_API_TOKEN 密钥
    • 在工作流调度中使用“使用 twine”选项

🤝 贡献

我们欢迎社区贡献!要开始,请查看我们的 贡献指南,了解设置说明、开发技巧和指导方针。