Open Ephemeris logo

Open Ephemeris

Sub-arcsecond ephemeris and astrology on NASA JPL DE440: natal, transits, eclipses, Human Design.

Install Open Ephemeris

Pick your client, then add it in one click or paste the config.

STDIONode.js
~/Library/Application Support/Claude/claude_desktop_config.json
claude_desktop_config.json
{
  "mcpServers": {
    "open-ephemeris": {
      "command": "npx",
      "args": [
        "-y",
        "@openephemeris/mcp-server"
      ]
    }
  }
}

Settings → Developer → Edit Config, merge this into mcpServers, then fully quit and reopen Claude Desktop.

Automated check passed— started and listed 39 tools correctly (6d ago).

Overview

Tools39

What Open Ephemeris lets your agent do. Expand a tool for its parameters.

Verified live~17.5k tokens of context

Security & health

What it can reach and how reliably it runs — from our own checks, not the maintainer’s claims.

ActiveLast checked 3d ago

Recent health check succeeded.

9/9 checks healthy over the last 57d

What it can do

From the 39 tools this server returned when we ran it; 39 declare their own safety hints.

Can delete or modify data · 1Handles credentials · 3Makes network requests · 5Read-only tools · 38
Network at startup5 connections
Files written at startupNone
Install scriptsNone
npm provenanceNot published
Package age222 days
Maintainers1

Observed 2026-10-16 in an isolated sandbox. A description of reach, not a security audit.

Supply-chain signal

No high-severity advisories surfaced by our automated scan.

Critical 0High 0Medium 0Low 0

Scanned 2d ago via OSV.dev · @openephemeris/mcp-server (npm)

Adoption & maintenance

Factual signals from GitHub, npm, and our automated checks — not a rating.

GitHub stars5Stargazers on the source repository.
npm downloads1.8kPackage downloads in the last 30 days.
Last commit3d agoMost recent push to the default branch.
Availability100%Our rolling endpoint + install checks that succeeded.
Install checkPassedOur sandbox started it and listed its tools.
Tools exposed39Callable tools this server registers over MCP.
Directory activity2 viewsConfig copies, upvotes, and views on AllMCPs.

From the project README

Open Ephemeris MCP Server

npm version System Status License: MIT Ephemeris: JPL DE440

Open Ephemeris in Claude — ask in plain language, get a real computed chart

Use it in Claude: add https://mcp.openephemeris.com/mcp as a custom connector (leave the OAuth Client ID and Secret blank) or install the Open Ephemeris plugin from the Claude directory. Sign-in happens in the browser and creates a free account with 150 credits.

Model Context Protocol server for Open Ephemeris — typed astrology tools powered by the NASA JPL DE440 ephemeris. Zero hallucination on planetary positions, dates, and degrees. Covers 1,100 years of astronomical data.

The catalog: 90 bodies and 124 fixed stars — asteroids, trans-Neptunians, Uranian points, computed in one engine

Hosted endpoint: https://mcp.openephemeris.com/mcp (Streamable HTTP, MCP 2025-11-25 spec)

Quick Start

Install via Smithery (recommended)

The fastest way to connect any MCP-compatible client:

Terminal
npx -y @smithery/cli install @open-ephemeris/openephemeris --client claude

Or browse the listing and copy connection snippets: smithery.ai/servers/open-ephemeris/openephemeris


Connect via AI SDK (Vercel AI SDK)

server.ts
import Smithery from "@smithery/api"
import { createMCPClient } from "@ai-sdk/mcp"
import { generateText } from "ai"
import { anthropic } from "@ai-sdk/anthropic"
import { createConnection } from "@smithery/api/mcp"

const smithery = new Smithery()

const conn = await smithery.connections.create("{your-namespace}", {
  mcpUrl: "https://server.smithery.ai/open-ephemeris/openephemeris",
  headers: {
    apiKey: "your-openephemeris-api-key", // get one free at openephemeris.com/dashboard
  },
})

const { transport } = await createConnection({
  client: smithery,
  namespace: "{your-namespace}",
  connectionId: conn.connectionId,
})

const mcpClient = await createMCPClient({ transport })
const tools = await mcpClient.tools()

const { text } = await generateText({
  model: anthropic("claude-sonnet-4-20250514"),
  tools,
  prompt: "Calculate a natal chart for someone born April 15, 1990 at 2:30 PM in Chicago.",
})

await mcpClient.close()

Connect via MCP SDK (TypeScript)

server.ts
import Smithery from "@smithery/api"
import { Client } from "@modelcontextprotocol/sdk/client/index.js"
import { createConnection } from "@smithery/api/mcp"

const smithery = new Smithery()

const conn = await smithery.connections.create("{your-namespace}", {
  mcpUrl: "https://server.smithery.ai/open-ephemeris/openephemeris",
  headers: {
    apiKey: "your-openephemeris-api-key",
  },
})

const { transport } = await createConnection({
  client: smithery,
  namespace: "{your-namespace}",
  connectionId: conn.connectionId,
})

const mcpClient = new Client(
  { name: "my-app", version: "1.0.0" },
  { capabilities: {} }
)
await mcpClient.connect(transport)

const { tools } = await mcpClient.listTools()
const result = await mcpClient.callTool({
  name: "ephemeris_natal_chart",
  // A datetime that states a clock time must state its zone: either pass
  // `timezone` alongside the local time, or put a Z/±HH:MM offset on the value.
  arguments: {
    datetime: "1990-04-15T14:30:00",
    timezone: "America/Chicago",
    latitude: 41.8781,
    longitude: -87.6298,
    format: "llm",
  },
})

Connect directly (Streamable HTTP, no Smithery)

server.ts
import { StreamableHTTPClientTransport } from "@modelcontextprotocol/sdk/client/streamableHttp.js"
import { Client } from "@modelcontextprotocol/sdk/client/index.js"

const transport = new StreamableHTTPClientTransport(
  new URL("https://mcp.openephemeris.com/mcp"),
  { requestInit: { headers: { "X-API-Key": "your-openephemeris-api-key" } } }
)

const client = new Client({ name: "my-app", version: "1.0.0" }, { capabilities: {} })
await client.connect(transport)

One-click install (Cursor)

Install in Cursor

Replace YOUR_API_KEY_HERE in Cursor MCP settings with your API key from https://openephemeris.com/dashboard.

Cursor deeplink payload:

config.json
{
  "command": "npx",
  "args": [
    "-y",
    "@openephemeris/mcp-server"
  ],
  "env": {
    "OPENEPHEMERIS_PROFILE": "dev",
    "OPENEPHEMERIS_BACKEND_URL": "https://api.openephemeris.com",
    "OPENEPHEMERIS_API_KEY": "YOUR_API_KEY_HERE"
  }
}

Manual install (stdio MCP clients)

config.json
{
  "mcpServers": {
    "openephemeris": {
      "command": "npx",
      "args": ["-y", "@openephemeris/mcp-server"],
      "env": {
        "OPENEPHEMERIS_PROFILE": "dev",
        "OPENEPHEMERIS_BACKEND_URL": "https://api.openephemeris.com",
        "OPENEPHEMERIS_API_KEY": "YOUR_API_KEY_HERE"
      }
    }
  }
}

Platform guide

Detailed setup walkthroughs for each platform are in SETUP.md.

ClientInstall modeConfig location
SmitheryOne-clicksmithery.ai
CursorOne-click deeplink or manual~/.cursor/mcp.json
Claude Desktop (macOS)Manual~/Library/Application Support/Claude/claude_desktop_config.json
Claude Desktop (Windows)Manual%APPDATA%\Claude\claude_desktop_config.json
WindsurfManual~/.codeium/windsurf/mcp_config.json (or legacy ~/.codeium/mcp_config.json)
ChatGPTOne-clickOpen Ephemeris in the ChatGPT app directory
Claude Web / remote clientsHosted URLhttps://mcp.openephemeris.com/mcp

Client install walkthroughs

  1. Cursor
    • Click the "Install in Cursor" button above, then replace YOUR_API_KEY_HERE in Cursor MCP settings.
    • If you prefer manual setup, paste the mcpServers.openephemeris block from "Manual install" into ~/.cursor/mcp.json.
  2. Claude Desktop (macOS/Windows)
    • Open the platform config file from the table above.
    • Add the same mcpServers.openephemeris block from "Manual install".
    • Restart Claude Desktop.
  3. Windsurf
    • Open ~/.codeium/windsurf/mcp_config.json (or the legacy ~/.codeium/mcp_config.json path).
    • Add the mcpServers.openephemeris block from "Manual install".
    • Restart Windsurf.

Remote-only clients (Claude Web, ChatGPT, etc.)

The server is hosted at https://mcp.openephemeris.com/mcp with full Streamable HTTP support (MCP 2025-11-25 spec). Remote-only clients can connect directly — no bridge/proxy required:

  • Claude Web: Add https://mcp.openephemeris.com/mcp as a custom connector URL — leave OAuth Client ID and Secret blank. The server uses OAuth 2.1 + PKCE (Dynamic Client Registration), so Claude handles authentication via a browser popup automatically.
  • ChatGPT: Open Ephemeris is an approved app in the ChatGPT app directory. Open the listing, click Install plugin, approve the sign-in (that also creates your free Open Ephemeris account), then type @Open Ephemeris in any chat. Charts render inline, exactly as they do in Claude. Prefer to wire it yourself? Settings → Plugins → Advanced → Developer mode → + Create app accepts https://mcp.openephemeris.com/mcp with Authentication on OAuth — no client ID or secret to enter.
  • Via Smithery: Use the Smithery listing for managed connections with any client
  • Legacy SSE: retired in 3.20.0 — use Streamable HTTP at /mcp

Auth and upgrade behavior in MCP clients

  • Missing/invalid credentials (401): tool call fails with a message that points users to sign up/sign in at https://openephemeris.com/login?signup=true&redirect=%2Fdashboard%3Ftab%3Daccount, then create/manage keys in https://openephemeris.com/dashboard?tab=account.
  • Tier-gated endpoint (403): tool call returns an upgrade-required message with https://openephemeris.com/pay and dashboard billing/key management link.
  • Out of credits (402): tool call returns a one-tap top-up link (Explorer's 150 free credits are one-time and do not reset; plan allowances renew each billing period) plus the dashboard usage link. Failed calls (any 4xx/5xx) are refunded.
  • Burst/rate limit (429): tool call returns retry guidance and links to dashboard usage monitoring.

What You Can Ask

Reviews

No reviews yet — be the first to share how it worked for you.

Frequently Asked Questions about Open Ephemeris

open-ephemeris is an MCP server that computes sub-arcsecond ephemerides and astrology using NASA JPL DE440 data. It supports natal charts, transits, eclipses, and Human Design, with astronomical coverage spanning 1,100 years. Its hosted Streamable HTTP endpoint is https://mcp.openephemeris.com/mcp, and its catalog includes 90 bodies and 124 fixed stars.

Connect using the hosted endpoint https://mcp.openephemeris.com/mcp, install it through Smithery, or add it as a custom connector in Claude. Claude connections can leave the OAuth Client ID and Secret blank; sign-in occurs in the browser.

open-ephemeris uses NASA JPL DE440 and provides natal charts, transits, eclipses, and Human Design calculations. Its catalog contains 90 bodies and 124 fixed stars, with 1,100 years of astronomical data.

Provide the birth datetime, timezone, latitude, and longitude. A clock time must include its timezone either through a separate timezone value, such as America/Chicago, or through a Z or ±HH:MM offset in the datetime.

Related MCP servers

Add a badge to your READMEShow it’s listed — live SVG, Markdown or HTML.

AllMCPs Directory Badge

Full Badge Customizer

Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.

Badge Style:
Live Dynamic SVG PreviewOpen Ephemeris AllMCPs Directory Badge
Markdown (GitHub README)
[![AllMCPs](https://allmcps.com/api/badge/open-ephemeris?style=directory)](https://allmcps.com/mcp/open-ephemeris)
HTML Embed
<a href="https://allmcps.com/mcp/open-ephemeris"><img src="https://allmcps.com/api/badge/open-ephemeris?style=directory" alt="Open Ephemeris on AllMCPs" /></a>