fix: route Exa and CodeGraph through shared mcp adapter

This commit is contained in:
云服务部-叶林立
2026-08-19 12:10:24 +08:00
parent a0a4ae44d4
commit 6293ef1c63
9 changed files with 104 additions and 65 deletions
-23
View File
@@ -1,23 +0,0 @@
import { createMcpAdapter } from "pi-mcp-adapter";
/** Connect Pi to the CodeGraph MCP server provided by the host machine. */
export default createMcpAdapter({
config: {
settings: {
disableProxyTool: true,
scriptMode: false,
},
mcpServers: {
codegraph: {
command: "codegraph",
args: ["serve", "--mcp"],
lifecycle: "keep-alive",
directTools: ["codegraph_explore"],
includeTools: ["codegraph_explore"],
toolPrefix: "none",
approveTools: false,
exposeResources: false,
},
},
},
});
-32
View File
@@ -1,32 +0,0 @@
import type { ExtensionAPI } from "@earendil-works/pi-coding-agent";
import { createMcpAdapter } from "pi-mcp-adapter";
import { createExaToolApiOverride } from "./exa-tool-prefix.ts";
const EXA_TOOLS = ["web_search_exa", "web_fetch_exa", "web_search_advanced_exa"];
const EXA_MCP_URL = `https://mcp.exa.ai/mcp?tools=${EXA_TOOLS.join(",")}`;
const exaAdapter = createMcpAdapter({
config: {
settings: {
disableProxyTool: true,
scriptMode: false,
},
mcpServers: {
exa: {
url: EXA_MCP_URL,
protocolVersion: "auto",
lifecycle: "eager",
directTools: EXA_TOOLS,
includeTools: EXA_TOOLS,
toolPrefix: "none",
approveTools: false,
exposeResources: false,
},
},
},
});
/** Connect Pi to Exa while exposing every direct tool as `exa_<original-name>`. */
export default function exaExtension(pi: ExtensionAPI): void {
exaAdapter(createExaToolApiOverride(pi));
}
+33
View File
@@ -0,0 +1,33 @@
import type { McpConfig } from "pi-mcp-adapter";
export const EXA_TOOLS = ["web_search_exa", "web_fetch_exa", "web_search_advanced_exa"];
const EXA_MCP_URL = `https://mcp.exa.ai/mcp?tools=${EXA_TOOLS.join(",")}`;
export const MCP_CONFIG: McpConfig = {
settings: {
disableProxyTool: true,
scriptMode: false,
},
mcpServers: {
exa: {
url: EXA_MCP_URL,
protocolVersion: "auto",
lifecycle: "eager",
directTools: EXA_TOOLS,
includeTools: EXA_TOOLS,
toolPrefix: "none",
approveTools: false,
exposeResources: false,
},
codegraph: {
command: "codegraph",
args: ["serve", "--mcp"],
lifecycle: "keep-alive",
directTools: ["codegraph_explore"],
includeTools: ["codegraph_explore"],
toolPrefix: "none",
approveTools: false,
exposeResources: false,
},
},
};
+13
View File
@@ -0,0 +1,13 @@
import type { ExtensionAPI } from "@earendil-works/pi-coding-agent";
import { createMcpAdapter } from "pi-mcp-adapter";
import { createExaToolApiOverride } from "./exa-tool-prefix.ts";
import { MCP_CONFIG } from "./mcp-config.ts";
const mcpAdapter = createMcpAdapter({
config: MCP_CONFIG,
});
/** Connect Pi to Exa and CodeGraph through one shared MCP adapter instance. */
export default function mcpExtension(pi: ExtensionAPI): void {
mcpAdapter(createExaToolApiOverride(pi));
}