Quickstart
5-minute agent quickstart
Connect your AI agent to Vedākṣha via MCP. From zero to computing charts in 7 steps.
Start the MCP Server
Run the Vedākṣha MCP server. It listens for JSON-RPC 2.0 connections over stdio or SSE transport.
# 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 3001Configure 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.
{
"mcpServers": {
"vedaksha": {
"command": "vedaksha",
"args": ["mcp", "serve"],
"env": {
"VEDAKSHA_LICENSE_KEY": "your-license-key"
}
}
}
}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.
# 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-idCall compute_natal_chart
Your agent calls the tool with a Julian Day, latitude, longitude, ayanamsha, and house system. The response is a complete ChartGraph.
// 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
}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 (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..."
}
]
}
}
}Emit the Graph to Cypher
Convert the chart into Neo4j Cypher statements for persistent storage and cross-chart queries.
// 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..."
}
}Search for Transits
Find upcoming transit events. Results stream back as they are discovered — your agent can process them incrementally.
// 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 ..."
}
}
}What's Next