Connectors guide
The Vedika MCP server lets an AI assistant or IDE call Vedika as tools. This guide adds it to your client and checks that it works.
1. Add the server to your MCP client
The server is the npm package @vedika-io/mcp-server. Your MCP client starts it with npx, so Node.js must be installed. Add this to your client's MCP configuration (the file or settings page where it lists servers) and restart the client. The top-level field may be named differently in your client (some use servers instead of mcpServers); check its MCP documentation. Use your production key from the dashboard; the server sends it with each tool call.
{
"mcpServers": {
"vedika": {
"command": "npx",
"args": [
"-y",
"@vedika-io/mcp-server"
],
"env": {
"VEDIKA_API_KEY": "your production key"
}
}
}
}Without VEDIKA_API_KEY the server stops at startup and prints that the variable is required. Keep the key in the client's own settings on your machine; never commit it.
2. Check that it starts
An MCP client talks to the server over standard input and output. This script does what a client does on connect: it starts the server, sends initialize, then tools/list, and prints the server name and the tool names. At this version neither request makes an API call, so it costs nothing, and any value for the key lets it start. A wrong or missing key shows up when you call a tool.
// Node.js 18 or later. Save as mcp-check.mjs and run: VEDIKA_API_KEY=... node mcp-check.mjs
// Starts the Vedika MCP server the way an MCP client does, asks it who it is and which tools it has.
import { spawn } from 'node:child_process';
const server = spawn('npx', ['-y', '@vedika-io/mcp-server'], {
stdio: ['pipe', 'pipe', 'inherit'],
shell: process.platform === 'win32', // npx is npx.cmd on Windows
});
server.stdout.setEncoding('utf8');
server.stdin.on('error', () => {}); // a server that exited early is reported by the exit handler below
const pending = new Map();
const failAll = (error) => {
for (const handler of pending.values()) handler(error);
pending.clear();
};
server.on('error', failAll);
server.on('exit', (code) => failAll(new Error(`server exited with code ${code} (is VEDIKA_API_KEY set?)`)));
let buffer = '';
server.stdout.on('data', (chunk) => {
buffer += chunk;
let end;
while ((end = buffer.indexOf('\n')) >= 0) {
const line = buffer.slice(0, end).trim();
buffer = buffer.slice(end + 1);
if (!line.startsWith('{')) continue;
let message;
try {
message = JSON.parse(line);
} catch {
continue; // not a JSON-RPC message
}
const handler = pending.get(message.id);
if (!handler) continue;
pending.delete(message.id);
handler(message);
}
});
let nextId = 1;
const call = (method, params = {}) =>
new Promise((resolve, reject) => {
const id = nextId++;
const timer = setTimeout(() => reject(new Error(`${method} timed out after 60 s`)), 60_000);
pending.set(id, (reply) => {
clearTimeout(timer);
if (reply instanceof Error) reject(reply);
else if (reply.error) reject(new Error(`${method}: ${reply.error.message}`));
else resolve(reply.result);
});
server.stdin.write(JSON.stringify({ jsonrpc: '2.0', id, method, params }) + '\n');
});
try {
const init = await call('initialize', {
protocolVersion: '2024-11-05',
capabilities: {},
clientInfo: { name: 'mcp-check', version: '1.0.0' },
});
server.stdin.write(JSON.stringify({ jsonrpc: '2.0', method: 'notifications/initialized' }) + '\n');
const { tools } = await call('tools/list');
console.log(init.serverInfo.name, init.serverInfo.version);
console.log(tools.length, 'tools:', tools.map((tool) => tool.name).join(', '));
} catch (error) {
console.error(error.message);
process.exitCode = 1;
} finally {
server.removeAllListeners('exit');
server.stdin.end();
server.kill();
}At version 2.0.8 it prints vedika-mcp-server 2.0.8 and then 48 tool names, and the server reports MCP protocol version 2024-11-05. A newer version can list a different number.
3. The tools
These are the 48 tools at version 2.0.8. Your client shows each tool's description and inputs; ask the client for the list again after an update.
vedika_ai_chat, vedika_conversation, vedika_birth_chart, vedika_dasha, vedika_doshas, vedika_compatibility, vedika_panchang, vedika_muhurta, vedika_divisional_charts, vedika_predictions, vedika_ashtakavarga, vedika_western_transits, vedika_western_progressions, vedika_western_solar_return, vedika_western_relationship, vedika_horoscope, vedika_numerology, vedika_varshaphal, vedika_strength, vedika_calendar, vedika_usage, vastu_reference, vastu_audit_floor_plan, vastu_room_placement, vastu_mandala_project, vastu_generate_plan, vastu_declination, vastu_operation, vastu_job_submit, vastu_job_status, vastu_job_results, vastu_job_cancel, vastu_job_artifact, vedika_tarot_draw, vedika_tarot_daily, vedika_iching_cast, vedika_chinese_zodiac, vedika_chinese_bazi, vedika_human_design_chart, vedika_crystals_recommend, vedika_matrimony_match, vedika_dasha_ashtottari, vedika_lalkitab_remedies, vedika_spiritual_mantra, vedika_spiritual_deity, vedika_health_ayurvedic, vedika_daily_bundle, vedika_numerology_complete.
The first, vedika_ai_chat, answers a free-form astrology question.
Errors and limits
If a tool call fails, check your key and plan first, fix invalid input before retrying, and back off if you are rate limited. The API's rules in Errors & limits apply.
Next steps
- MCP server page
- Webhooks: receive results in your own service instead of polling.
- Integration guide: REST, SDKs, streaming and webhooks.
- API reference