Vedākṣha

Quickstart

5-minute agent quickstart

Connect your AI agent to Vedākṣha via MCP. From zero to computing charts in 7 steps.

1

Start the MCP Server

Run the Vedākṣha MCP server. It listens for JSON-RPC 2.0 connections over stdio or SSE transport.

terminal
# Install the Vedākṣha CLI
cargo install vedaksha-cli

# Start the MCP server (stdio transport)
vedaksha mcp serve

# Or with SSE transport on a specific port
vedaksha mcp serve --transport sse --port 3001
2

Configure Your AI Agent's MCP Client

Point your AI agent's MCP client configuration to the Vedaksha server. Here is an example configuration for a typical MCP client.

mcp_config.json
{
  "mcpServers": {
    "vedaksha": {
      "command": "vedaksha",
      "args": ["mcp", "serve"],
      "env": {
        "VEDAKSHA_LICENSE_KEY": "your-license-key"
      }
    }
  }
}
3

Authenticate

Vedākṣha MCP supports OAuth 2.1. For local development, set your license key as an environment variable. For production, use the OAuth flow.

terminal
# Set your license key (local development)
export VEDAKSHA_LICENSE_KEY="vk_live_..."

# The MCP server reads this automatically.
# For OAuth 2.1 in production, configure the token endpoint:
# VEDAKSHA_OAUTH_TOKEN_URL=https://api.vedaksha.net/oauth/token
# VEDAKSHA_OAUTH_CLIENT_ID=your-client-id
4

Call compute_natal_chart

Your agent calls the tool with a Julian Day, latitude, longitude, ayanamsha, and house system. The response is a complete ChartGraph.

request.json
// MCP tool call (JSON-RPC 2.0)
{
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "name": "compute_natal_chart",
    "arguments": {
      "julian_day": 2460388.0,
      "latitude": 28.6139,
      "longitude": 77.2090,
      "ayanamsha": "Lahiri",
      "house_system": "WholeSign"
    }
  },
  "id": 1
}
5

Read the ChartGraph Response

The response contains a full property graph — planets, houses, signs, aspects, dignities, yogas, and ranked highlights. Each entity includes an nl_description field for natural language output.

response.json
// Response (abbreviated)
{
  "result": {
    "chart_graph": {
      "nodes": [
        {
          "id": "planet_jupiter_40.2",
          "type": "Planet",
          "name": "Jupiter",
          "longitude": 40.2,
          "sign": "Taurus",
          "nakshatra": "Krittika",
          "house": 1,
          "dignity": "neutral",
          "nl_description": "Jupiter at 40.2° in Taurus..."
        }
      ],
      "edges": [
        {
          "from": "planet_jupiter_40.2",
          "to": "house_1",
          "type": "PLACED_IN"
        }
      ],
      "chart_highlights": [
        {
          "rank": 1,
          "feature": "Jupiter in 1st house",
          "significance": 0.92,
          "nl_description": "Jupiter in the 1st house..."
        }
      ]
    }
  }
}
6

Emit the Graph to Cypher

Convert the chart into Neo4j Cypher statements for persistent storage and cross-chart queries.

emit_graph.json
// MCP tool call
{
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "name": "emit_graph",
    "arguments": {
      "chart_graph": "<<from previous response>>",
      "format": "Cypher"
    }
  },
  "id": 2
}

// Response
{
  "result": {
    "output": "CREATE (p:Planet {id: 'planet_jupiter_40.2', name: 'Jupiter', ...})\nCREATE (h:House {id: 'house_1', ...})\nMERGE (p)-[:PLACED_IN]->(h)\n..."
  }
}
7

Search for Transits

Find upcoming transit events. Results stream back as they are discovered — your agent can process them incrementally.

transits.json
// MCP tool call
{
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "name": "search_transits",
    "arguments": {
      "start_jd": 2460388.0,
      "end_jd": 2460418.0,
      "bodies": ["Jupiter", "Saturn", "Mars"],
      "event_types": ["SignIngress", "Retrograde", "Conjunction"],
      "ayanamsha": "Lahiri"
    }
  },
  "id": 3
}

// Streamed response (one event at a time)
{
  "result": {
    "event": {
      "type": "SignIngress",
      "body": "Jupiter",
      "julian_day": 2460395.7,
      "sign": "Gemini",
      "nl_description": "Jupiter enters Gemini on ..."
    }
  }
}