山地天气查询服务

一个提供日本山地详细天气预报的服务,支持通过山地ID或名称查询天气信息和山地基本信息。

  • by amaumene
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 amaumene/yamatenki-mcp

使用说明

yamatenki mcp

用于访问Yamatenki山区天气预报的模型上下文协议(MCP)服务器。

重要提示:身份验证更改

Yamatenki API现在需要Cloudflare Turnstile(CAPTCHA)验证,因此自动电子邮件/密码登录不再有效。

您必须从浏览器手动获取会话令牌。看 GET_SESSION_TOKEN.md 详细说明。

安装

# Install with uv (recommended)
uv pip install -e .

# Or with pip
pip install -e .

配置

创建一个 .env 项目根目录中的文件:

# Session token (REQUIRED - get this from your browser)
YAMATENKI_SESSION_TOKEN=your_session_token_here

# Email/password authentication (DEPRECATED - no longer works due to Turnstile)
# YAMATENKI_EMAIL=your-email@example.com
# YAMATENKI_PASSWORD=your-password

看 GET_SESSION_TOKEN.md 有关获取会话令牌的说明。

用法

HTTP模式(用于curl测试)

# Start server on port 8000
MCP_TRANSPORT=http MCP_PORT=8000 uv run server.py

测试身份验证:

SESSION_ID=$(curl -s -i -N -X POST http://localhost:8000/mcp -H "Content-Type: application/json" -H "Accept: application/json, text/event-stream" -d '{"jsonrpc":"2.0","method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"curl-test","version":"1.0.0"}},"id":1}' | grep -i "mcp-session-id:" | cut -d' ' -f2 | tr -d '\r') && curl -X POST http://localhost:8000/mcp -H "Content-Type: application/json" -H "Accept: application/json, text/event-stream" -H "mcp-session-id: $SESSION_ID" -d '{"jsonrpc":"2.0","method":"tools/call","params":{"name":"check_auth_status","arguments":{}},"id":2}'

STDIO模式(适用于克劳德桌面)

添加到您的Claude Desktop配置中:

{
  "mcpServers": {
    "yamatenki": {
      "command": "uv",
      "args": ["run", "server.py"],
      "cwd": "/path/to/yamatenki-mcp",
      "env": {
        "YAMATENKI_SESSION_TOKEN": "your_session_token_here"
      }
    }
  }
}

可用工具

check_auth_status

检查是否与Yamatenki进行了身份验证。

search_mountains

按名称搜索山脉(日语)。

参数:

  • query (string):日文山名
  • limit (int,可选):最大结果(默认值:20)

get_mountain_weather

获取一座山的全面天气预报。

参数:

  • mountain_id (int):山神山ID

get_mountain_info

在没有完整天气数据的情况下获取基本的山区信息。

参数:

  • mountain_id (int):山神山ID

示例

# Search for a mountain
curl ... -d '{"jsonrpc":"2.0","method":"tools/call","params":{"name":"search_mountains","arguments":{"query":"立山","limit":5}},"id":2}'

# Get weather for Tateyama (ID: 149)
curl ... -d '{"jsonrpc":"2.0","method":"tools/call","params":{"name":"get_mountain_weather","arguments":{"mountain_id":149}},"id":3}'

故障排除

如果您看到身份验证错误:

  1. 确保您已设置 YAMATENKI_SESSION_TOKEN 在 .env
  2. 验证您的令牌是否仍然有效(令牌可能会过期)
  3. 通过再次登录获取新令牌(请参阅Get_SESSION_token.md)

许可证

看 许可证 文件。