sourcegraph-mcp-server
Version:
A Model Context Protocol (MCP) server that connects AI assistants to Sourcegraph code search with natural language capabilities
46 lines (45 loc) • 1.54 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const express_1 = require("express");
const mcp_server_1 = require("../mcp-server");
const router = (0, express_1.Router)();
const mcpServer = (0, mcp_server_1.createServer)();
// Cast to allow access to invoke method
const server = mcpServer;
/**
* POST /api/search
* Body: { query: string, type?: string }
*/
router.post('/search', async (req, res) => {
try {
const { query, type = 'file' } = req.body;
if (!query) {
return res.status(400).json({ error: 'Query is required' });
}
// Natural language search is disabled
if (type === 'natural') {
return res.status(400).json({ error: 'Natural language search is disabled' });
}
// Handle standard search
const result = await server.invoke('search-code', { query, type });
return res.json(result);
}
catch (error) {
console.error('Error in /api/search:', error);
return res.status(500).json({ error: `Search failed: ${error.message || 'Unknown error'}` });
}
});
/**
* GET /api/tools - List available tools
*/
router.get('/tools', async (req, res) => {
try {
const result = await server.invoke('debug', {});
return res.json(result);
}
catch (error) {
console.error('Error listing tools:', error);
return res.status(500).json({ error: `Failed to list tools: ${error.message || 'Unknown error'}` });
}
});
exports.default = router;