Zum Inhalt

MCP Tools

Mit MCP-Tools arbeiten und eigene erstellen.

Built-in Tools vs MCP Tools

Built-in MCP
Read, Write Custom Tools
Bash, Glob, Grep Via Server definiert
Immer verfügbar Muss verbunden sein

MCP Tools nutzen

Automatisch

Claude erkennt verfügbare MCP-Tools und nutzt sie automatisch:

Create an issue in GitHub for the auth bug

→ Claude nutzt mcp__github__create_issue automatisch

Explizit

Use the MCP filesystem tool to list /var/log

Tool Discovery

Verfügbare Tools anzeigen

What MCP tools are available?

Oder:

/mcp

Zeigt alle Server und deren Tools.

Tool-Schema anzeigen

Show me the schema for mcp__github__create_issue

Tool-Namen

MCP Tools folgen dem Schema:

mcp__<server>__<tool>

Beispiele: - mcp__github__list_issues - mcp__notion__search_pages - mcp__filesystem__read_file

Tool-Einschränkungen

In settings.json

{
  "permissions": {
    "allowedTools": [
      "Read",
      "Write",
      "mcp__github__*",
      "mcp__notion__search_*"
    ],
    "deniedTools": [
      "mcp__github__delete_*"
    ]
  }
}

Wildcards (*) werden unterstützt.

In Skills

---
name: github-review
allowed-tools:
  - Read
  - mcp__github__list_issues
  - mcp__github__get_pull_request
---

Eigene MCP Server bauen

Minimal Server (Node.js)

// my-mcp-server.js
import { Server } from "@modelcontextprotocol/sdk/server/index.js";
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";

const server = new Server({
  name: "my-tools",
  version: "1.0.0"
}, {
  capabilities: { tools: {} }
});

// Tool definieren
server.setRequestHandler("tools/list", async () => ({
  tools: [{
    name: "hello",
    description: "Says hello",
    inputSchema: {
      type: "object",
      properties: {
        name: { type: "string", description: "Name to greet" }
      },
      required: ["name"]
    }
  }]
}));

// Tool implementieren
server.setRequestHandler("tools/call", async (request) => {
  if (request.params.name === "hello") {
    const name = request.params.arguments.name;
    return {
      content: [{ type: "text", text: `Hello, ${name}!` }]
    };
  }
});

// Server starten
const transport = new StdioServerTransport();
await server.connect(transport);

Registrieren

claude mcp add --transport stdio my-tools -- node my-mcp-server.js

MCP Resources

Neben Tools können MCP Server auch Resources bereitstellen:

Resources auflisten

List available MCP resources

Resource laden

@mcp:github:repo/anthropics/claude-code

Syntax: @server:resource-uri

Praktische Beispiele

GitHub Workflow

1. List open issues in anthropics/claude-code
2. Get details for issue #123
3. Create a branch for the fix
4. After fixing, create a PR

Claude nutzt automatisch die passenden MCP-Tools.

Notion Integration

Search my Notion for "Q1 Planning" and summarize the key points

Database Queries

Connect to the PostgreSQL database and show me 
the users who signed up in the last 7 days

Error Handling

Tool schlägt fehl

Claude zeigt Fehlermeldung und schlägt Alternativen vor.

Server nicht erreichbar

⚠️ MCP server 'github' not responding

Fix: Server neu starten oder Credentials prüfen.

Permission Denied

Wenn Tool in deniedTools:

❌ Tool mcp__github__delete_repo not allowed

Best Practices

  1. Least Privilege - Nur nötige Tools erlauben
  2. Secrets in Env - Nie hardcoded Credentials
  3. Timeouts setzen - MCP_TIMEOUT für langsame Server
  4. Output begrenzen - MAX_MCP_OUTPUT_TOKENS bei großen Responses