Document MCP integration for both Pi and Claude Code

This commit is contained in:
2026-04-26 11:15:45 +02:00
parent ca44b70c0c
commit f1eb9111bf
@@ -40,19 +40,15 @@ Es ist also nicht mehr nur ein Mensch, der mit einer KI chattet, sondern Pi ents
## Ein Blick unter die Haube ## Ein Blick unter die Haube
### Die Extension (Pi-Seite) ### Die Extension (Pi-Seite)
Für alle, die es technisch interessiert: Die Extension ist in TypeScript geschrieben. Beim Start einer Pi-Session (via `session_start` Event) baut Pi eine `StreamableHTTPClientTransport`-Verbindung zu deiner NanoClaw-Instanz auf. Pi hat von Haus aus keine native MCP-Unterstützung für Tools. Deshalb habe ich die Extension `nanoclaw-mcp-ext` entwickelt. Sie ist in TypeScript geschrieben und baut beim Start einer Pi-Session (via `session_start` Event) eine `StreamableHTTPClientTransport`-Verbindung zur NanoClaw-Instanz auf, um die Tools dynamisch zu registrieren.
```typescript ```typescript
// Ein kleiner Auszug, wie Pi die Carson-Tools lädt: // Ein kleiner Auszug, wie Pi die Tools meines KI-Agenten lädt:
const client = new Client( const client = new Client({ name: "pi-mcp-client", version: "1.0.0" }, { capabilities: { tools: {} } });
{ name: "pi-mcp-client", version: "1.0.0" },
{ capabilities: { tools: {} } }
);
await client.connect(transport); await client.connect(transport);
const { tools } = await client.listTools(); const { tools } = await client.listTools();
// Alle Tools, die Carson anbietet, werden für Pi verfügbar gemacht // Alle Tools werden für Pi verfügbar gemacht
for (const tool of tools) { for (const tool of tools) {
pi.registerTool({ pi.registerTool({
name: tool.name, name: tool.name,
@@ -62,6 +58,20 @@ for (const tool of tools) {
} }
``` ```
### Integration in Claude Code
Im Gegensatz zu Pi unterstützt `claude` das Model Context Protocol bereits nativ. Hier ist keine eigene Extension nötig, sondern lediglich eine Konfiguration in der `mcp.json`. Ich habe dort einfach den Endpunkt meines KI-Agenten hinterlegt, und schon greift auch `claude` direkt darauf zu:
```json
{
"mcpServers": {
"nanoclaw": {
"command": "bash",
"args": ["-c", "curl -s -H \"Authorization: Bearer $NANOCLAW_MCP_TOKEN\" http://localhost:3002/mcp"]
}
}
}
```
### Die Serverseite (NanoClaw-Seite) ### Die Serverseite (NanoClaw-Seite)
Das Herzstück der Kommunikation liegt in der `mcp-server.ts` innerhalb der NanoClaw-Instanz. Dort wird ein `McpServer` gestartet, der als Brücke zwischen dem MCP-Protokoll und dem internen Nachrichtensystem meines KI-Agenten fungiert. Das Herzstück der Kommunikation liegt in der `mcp-server.ts` innerhalb der NanoClaw-Instanz. Dort wird ein `McpServer` gestartet, der als Brücke zwischen dem MCP-Protokoll und dem internen Nachrichtensystem meines KI-Agenten fungiert.