MCP-Weather

Fornece informações meteorológicas usando a API da Agência Meteorológica do Japão. Nenhuma autenticação necessária.

Documentação

MCP-Weather

Servidor MCP de obtenção de informações meteorológicas usando a API da Agência Meteorológica do Japão (com autenticação OAuth 2.0)

Visão Geral

mcp-weather é um servidor MCP que utiliza a API de previsão do tempo da Agência Meteorológica do Japão (compatível com livedoor Weather) para obter informações meteorológicas de diversas regiões do Japão. Com controle de acesso seguro usando autenticação OAuth 2.0, pode ser implantado como servidor remoto no Cloudflare Workers.

Características

  • Autenticação OAuth 2.0: Controle de acesso seguro e autenticação baseada em tokens
  • Dados meteorológicos abrangentes: Fornece condições climáticas, probabilidade de precipitação e informações de velocidade do vento
  • Cobertura nacional: Obtém dados meteorológicos das principais cidades
  • Suporte remoto: Implantável no Cloudflare Workers para uso como servidor remoto
  • Suporte mobile: Utilizável em aplicativos móveis através do fluxo OAuth padrão

Ferramentas Disponíveis

1. get_weather_overview

Obtém as condições climáticas gerais da cidade especificada.

  • Horário de publicação
  • Texto das condições climáticas
  • Previsão do tempo para hoje, amanhã e depois de amanhã
  • Informações meteorológicas detalhadas

2. get_precipitation_probability

Obtém a probabilidade de precipitação da cidade especificada.

  • Probabilidade de precipitação por período (0-6h, 6-12h, 12-18h, 18-24h)
  • Previsão para hoje, amanhã e depois de amanhã

3. get_wind_speed

Obtém informações de velocidade do vento da cidade especificada.

  • Informações detalhadas de direção e velocidade do vento
  • Previsão para hoje, amanhã e depois de amanhã

Cidades Suportadas

Sapporo, Aomori, Morioka, Sendai, Akita, Yamagata, Fukushima, Mito, Utsunomiya, Maebashi, Saitama, Chiba, Tóquio, Yokohama, Niigata, Toyama, Kanazawa, Fukui, Kofu, Nagano, Gifu, Shizuoka, Nagoya, Tsu, Otsu, Kyoto, Osaka, Kobe, Nara, Wakayama, Tottori, Matsue, Okayama, Hiroshima, Yamaguchi, Tokushima, Takamatsu, Matsuyama, Kochi, Fukuoka, Saga, Nagasaki, Kumamoto, Oita, Miyazaki, Kagoshima, Naha

Configuração

Escolha do Método de Uso

Este servidor MCP suporta dois métodos de uso:

Método de UsoCaracterísticasAutenticaçãoComplexidade de Configuração
Servidor MCP LocalRápido, proteção de privacidade, confiávelNão necessáriaSimples
Servidor MCP RemotoRecursos mais recentes, escalabilidadeOAuth 2.0Moderada

Método A: Servidor MCP Local (Recomendado e Simples)

Pode ser utilizado de forma simples, sem necessidade de autenticação.

1. Instalação das dependências

npm install

2. Compilar o servidor MCP local

npm run build:local

3. Configurar no mcp.json do Cursor

{
  "mcp-weather-local": {
    "command": "node",
    "args": ["/path/to/MCP-Weather/dist/server/local/index.js"]
  }
}

4. Começar a usar

Reinicie o Cursor e digite "Me diga o clima em Tóquio".

Método B: Servidor MCP Remoto (Autenticação OAuth)

Método 1: Atualização automática de token (Recomendado)

# プロジェクトディレクトリで実行
node src/utils/update-token.cjs

Método 2: Configuração manual

  1. Obter token de autenticação OAuth
node src/utils/get-token.cjs
  1. Atualizar o token manualmente

    • Atualize src/client/mcp-weather-remote.cjs de ACCESS_TOKEN
  2. Configurar no mcp.json do Cursor

{
  "mcp-weather-remote": {
    "command": "node",
    "args": ["/path/to/MCP-Weather/src/client/mcp-weather-remote.cjs"]
  }
}

Usando variáveis de ambiente

export MCP_WEATHER_TOKEN="your-token-here"

Solução de Problemas

Problemas com o servidor MCP local

  1. Verificar instalação das dependências
npm install
  1. Execução direta do TypeScript
npm run dev:local

Problemas com o servidor MCP remoto

  1. Usar versão de depuração
{
  "mcp-weather-remote-debug": {
    "command": "node",
    "args": ["/path/to/MCP-Weather/src/client/mcp-weather-debug.cjs"]
  }
}
  1. Token expirado
node src/utils/update-token.cjs
  1. Verificar os logs do Cursor
    • Cursor > View > Output > MCP

Estrutura de arquivos

MCP-Weather/
├── src/
│   ├── server/               # サーバーサイド実装
│   │   ├── local/            # ローカルサーバー
│   │   │   └── index.ts      # ローカルMCPサーバー
│   │   └── remote/           # リモートサーバー
│   │       ├── worker.ts     # Cloudflare Workers実装
│   │       └── auth.ts       # OAuth認証サービス
│   ├── client/               # クライアントサイド実装
│   │   ├── mcp-weather-remote.cjs  # メインのMCPクライアント
│   │   └── mcp-weather-debug.cjs   # デバッグ版
│   └── utils/                # ユーティリティ
│       ├── get-token.cjs     # トークン取得スクリプト
│       └── update-token.cjs  # トークン自動更新スクリプト
├── dist/                     # ビルド出力
│   └── server/
│       ├── local/            # ローカルサーバーのビルド出力
│       └── remote/           # リモートサーバーのビルド出力
├── node_modules/             # 依存関係
├── package.json              # プロジェクト設定
├── package-lock.json         # 依存関係のロック
├── tsconfig.json             # TypeScript設定(リモート用)
├── tsconfig.local.json       # TypeScript設定(ローカル用)
├── wrangler.toml             # Cloudflare Workers設定
└── README.md

Configuração para Desenvolvedores

Instalação das dependências

npm install

Desenvolvimento do servidor MCP local

# ローカルサーバーのビルド
npm run build:local

# ローカルサーバーの開発モード
npm run dev:local

# ローカルサーバーの型チェック
npm run type-check:local

Implantação no Cloudflare Workers

  1. Instalação do Wrangler (se não estiver instalado)
npm install -g wrangler
  1. Login na conta Cloudflare
npx wrangler login
  1. Criar armazenamento KV Crie um namespace KV para armazenar os dados de autenticação OAuth:
# 本番環境用
npx wrangler kv:namespace create "OAUTH_KV"
# 開発環境用
npx wrangler kv:namespace create "OAUTH_KV" --preview
  1. Atualizar o ID do KV em wrangler.toml Defina o ID do namespace KV criado em wrangler.toml.

  2. Implantação

# ビルド
npm run build

# デプロイ
npx wrangler deploy

Desenvolvimento local

# 開発モードで起動
npx wrangler dev

# ビルド
npm run build

Como Usar

Uso com servidor MCP local

  1. Após a configuração, reinicie o Cursor
  2. Obtenção de informações meteorológicas
    • Digite "Me diga o clima em Tóquio" no Cursor
    • A ferramenta apropriada será chamada automaticamente

Uso com servidor MCP remoto

  1. Obtenção e configuração do token
node src/utils/update-token.cjs
  1. Obtenção de informações meteorológicas
    • Digite "Me diga o clima em Tóquio" no Cursor
    • A ferramenta apropriada será chamada automaticamente

Credenciais de demonstração (para servidor MCP remoto)

Credenciais de demonstração para desenvolvimento e teste:

  • Nome de usuário: demo
  • Senha: demo123

Não é necessária autenticação ao usar o servidor MCP local.

Para Desenvolvedores de Aplicativos Mobile

Endpoints da API OAuth 2.0

  • Criação de cliente: POST /oauth/client
  • Início da autenticação: GET /oauth/authorize
  • Obtenção de token: POST /oauth/token
  • API MCP: POST / (autenticação Bearer)

Plataformas Suportadas

  • iOS: SFSafariViewController, ASWebAuthenticationSession
  • Android: Chrome Custom Tabs, WebView
  • React Native: react-native-app-auth
  • Flutter: flutter_appauth

Para exemplos detalhados de implementação, consulte o código do lado do servidor do projeto (src/).

Fonte de Dados

Este servidor utiliza a "API de Previsão do Tempo (compatível com livedoor Weather)" (https://weather.tsukumijima.net/). Esta API fornece dados de previsão do tempo distribuídos pela Agência Meteorológica do Japão em formato JSON.

Segurança

Autenticação OAuth 2.0

  • Código de autenticação: Válido por 10 minutos
  • Token de acesso: Válido por 1 hora
  • Suporte a PKCE: Autenticação segura em aplicativos mobile

Configuração em ambiente de produção

Em ambiente de produção, observe os seguintes pontos:

  1. Segredo do cliente: Gerencie com segurança e não o exponha publicamente
  2. URI de redirecionamento: Configure apenas domínios confiáveis
  3. Token de acesso: Proteja adequadamente e envie apenas via HTTPS

Avisos

  • Se a resposta da API contiver dados inesperados, podem ocorrer erros
  • Se a estrutura da API do site da Agência Meteorológica do Japão for alterada, o serviço pode ser interrompido
  • Evite acessos consecutivos à API; utilize com intervalos adequados
  • Gerencie os tokens de autenticação OAuth adequadamente e evite vazamento para terceiros