index.ts•1.41 kB
import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
import { getPackageJson } from './lib/getPackageInfo.js';
import { textEditorExecute, toolParameters } from './tools/textEditor.js';
// Create server instance with package information
const packageJson = getPackageJson();
const server = new McpServer({
  name: packageJson.name!,
  version: packageJson.version!,
});
server.tool(
  'text_editor',
  "View, create, and edit files with persistent state across command calls.  This tool is identical with Claude's built in text editor tool called text_editor_20241022",
  toolParameters,
  textEditorExecute,
);
async function main() {
  console.error(
    `Starting ${packageJson.name} MCP Server v${packageJson.version}...`,
  );
  try {
    console.error('Initializing StdioServerTransport...');
    const transport = new StdioServerTransport();
    console.error('Connecting server to transport...');
    await server.connect(transport);
    console.error(
      `${packageJson.name} MCP Server v${packageJson.version} running on stdio`,
    );
    console.error('Server ready to accept commands');
  } catch (error) {
    console.error('Error during server startup:', error);
    throw error;
  }
}
main().catch((error) => {
  console.error('Fatal error in main():', error);
  process.exit(1);
});