個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證Hosted MCP server for real Vedic and Western astrology: 103 read-only tools for natal charts, dasha, matchmaking, panchanga, numerology and tarot. Swiss Ephemeris precision, OAuth 2.1, free tier.
翻譯準備中
取自儲存庫 README
正在載入完整 README。 以下為已儲存的摘錄。
Astrology and divination calculations as MCP tools. 103 tools covering Vedic and Western astrology, numerology, tarot, crystals, dreams, natal charts, Dasha, matchmaking and Panchanga, with interpretations that follow classical Jyotish method. Every position is verified against an independent Swiss Ephemeris run (asterwise.com/proof) and checked against NASA JPL Horizons, median 0.046 arcseconds over 80 positions (asterwise.com/accuracy). How it compares with seven other astrology APIs, sourced and dated: asterwise.com/compare.檢視完整 README ↗Astrology and divination calculations as MCP tools. 118 tools covering Vedic and Western astrology, numerology, tarot, crystals, dreams, natal charts, Dasha, matchmaking and Panchanga, with interpretations that follow classical Jyotish method. Every position is verified against an independent Swiss Ephemeris run (asterwise.com/proof) and checked against NASA JPL Horizons, median 0.050 arcseconds over 80 positions (asterwise.com/accuracy). How it compares with seven other astrology APIs, sourced and dated: asterwise.com/compare.
See it first: 46-second demo of Claude Desktop casting a chart through this server, and the independent Swiss Ephemeris cross-check.
Sign up free at asterwise.com/dashboard: 500 calls/month on the Sandbox tier. No credit card. No time limit.
Add to ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"asterwise": {
"command": "npx",
"args": [
"mcp-remote",
"https://mcp.asterwise.com/mcp"
],
"env": {
"MCP_HEADER_AUTHORIZATION": "Bearer your-api-key-here"
}
}
}
}
Add to .cursor/mcp.json in your project:
{
"mcpServers": {
"asterwise": {
"url": "https://mcp.asterwise.com/mcp",
"headers": {
"Authorization": "Bearer your-api-key-here"
}
}
}
}
curl https://mcp.asterwise.com/health
Three methods supported:
Method 1 — API Key (quick start)
Pass your Asterwise API key (starts with aw_) either as Authorization: Bearer <api-key> or as an X-API-Key: <api-key> header. Both are equivalent; use whichever your MCP client can set.
Method 2 — OAuth 2.1 (production)
Exchange your API key for a short-lived token:
curl -X POST https://mcp.asterwise.com/oauth/token \
-H "Content-Type: application/json" \
-d '{
"grant_type": "client_credentials",
"client_id": "your-api-key",
"client_secret": "your-api-key"
}'
Returns: {"access_token": "...", "expires_in": 3600, ...}
Use the token: Authorization: Bearer <access_token>
Access tokens are stateless HS256 JWTs. The API key is carried inside the token encrypted with a key derived from JWT_SECRET; only a SHA-256 hash of the key appears in the sub claim. Keep JWT_SECRET private.
Method 3 — OAuth 2.1 authorization code for MCP clients (Claude, Cursor, VS Code, Smithery)
MCP clients log a user in through the standard authorization-code flow with PKCE (S256). Discovery is at /.well-known/oauth-authorization-server. Two ways for a client to identify itself are supported:
client_id. The URL must serve a JSON document whose client_id equals the URL, with client_name, redirect_uris, and token_endpoint_auth_method: "none". These clients are public: no secret, PKCE only, authorization_code and refresh_token grants, refresh tokens rotate on every use. Redirect URIs must be https, or http on localhost / 127.0.0.1 / [::1] (port ignored, per RFC 8252). A reference document you can copy: https://asterwise.com/public/oauth/example-client.json.POST /oauth/register, deprecated in the MCP spec but still supported): returns a client_id and client_secret; the secret is required at /oauth/token.The server fetches metadata documents with SSRF protections (public addresses only, no redirects, 64 KB, 10 s) and caches them for the document's Cache-Control: max-age (60 s to 24 h, default 1 h). The consent page shows the host that published the document.
For hosts that speak stdio instead of HTTP (Glama hosted builds, a local Claude Desktop entry, quick tests):
pip install -r requirements.txt
ASTERWISE_API_KEY=aw_your_key python stdio.py
Over stdio the key comes from ASTERWISE_API_KEY; the server starts and lists its tools without one, and tool calls need it. Logs go to stderr.
Copy .env.example to .env and set at least:
| Variable | Required | Description |
|---|---|---|
ASTERWISE_API_BASE_URL | Yes | Asterwise API base URL (e.g. https://api.asterwise.com). |
JWT_SECRET | For /oauth/token | At least 32 characters; used to sign access tokens. |
MCP_SERVER_HOST / MCP_SERVER_PORT | No | Bind address and port for the MCP HTTP server. |
LOG_LEVEL | No | Default INFO. |
MCP_OAUTH_SECRET | For OAuth | Shared with asterwise-api; verifies access tokens issued by its /v1/oauth/token. |
ASTERWISE_API_KEY | stdio only | Your Asterwise API key for python stdio.py; HTTP deployments take the key per request instead. |
INTERNAL_API_TOKEN | For OAuth client registration | Shared with asterwise-api; used when forwarding dynamic client registration. |
FRONTEND_URL | For /authorize | Where the browser is sent for sign-in and consent (e.g. https://asterwise.com). |
OPENAI_APPS_CHALLENGE_TOKEN | No | Served at /.well-known/openai-apps-challenge for directory verification. |
The MCP server exposes 118 tools organized by Python module. The categorization reflects code organization; tools may serve multiple traditions (e.g. matchmaking includes both Sanskrit Dashakoot and Tamil Porutham methods).
For the full tool list see docs.asterwise.com or the MCP server's tool listing endpoint.
python -m venv .venv
source .venv/bin/activate
pip install -r requirements-dev.txt
export ASTERWISE_API_BASE_URL=https://api.asterwise.com
export JWT_SECRET="$(python -c 'import secrets; print(secrets.token_hex(32))')"
uvicorn server:app --host 0.0.0.0 --port 8080
uvicorn server:app is the same entry point the production Dockerfile and railway.toml use, so the auth middleware, OAuth routes and /health are all present locally. Runtime dependencies are pinned in requirements.txt; requirements-dev.txt adds the test tooling.
pytest
Coverage is enforced at 78% for core modules (auth, client, errors, logging_config, models, runtime, server); tool modules are excluded from the gate (see .coveragerc).
MIT. See LICENSE. Security reports: see SECURITY.md.