#!/usr/bin/env node
/**
* Obsidian MCP Server - Entry Point
*
* This MCP server integrates with the Obsidian Local REST API to provide
* tools for reading, creating, editing, and searching notes in Obsidian.
*
* Configuration:
* - OBSIDIAN_API_URL: Base URL for the Obsidian REST API (default: http://127.0.0.1:27123)
* - OBSIDIAN_API_KEY: API Key for authentication (required)
* - MCP_TRANSPORT: Transport mode - 'stdio' (default) or 'http' for Streamable HTTP
* - MCP_PORT: Port for HTTP mode (default: 3000)
*/
import { startStdioServer, startStreamableHTTPServer } from './server.js';
// Determine transport mode
const transportMode = process.env.MCP_TRANSPORT || 'stdio';
const port = parseInt(process.env.MCP_PORT || '3000', 10);
// Main entry point
async function main(): Promise<void> {
if (transportMode === 'http' || transportMode === 'sse') {
await startStreamableHTTPServer(port);
} else {
await startStdioServer();
}
}
main().catch((error: Error) => {
console.error('Fatal error:', error);
process.exit(1);
});