Document MCP integration for both Pi and Claude Code
This commit is contained in:
@@ -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.
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user