# Tool Integration

Connect external tools and APIs to your PA via MCP (Model Context Protocol) servers. This gives your PA the ability to interact with services like GitHub, Slack, Google Drive, Jira, and more.


## What it does

MCP servers expose external tool capabilities to Claude Code. Once configured, your PA can use these tools naturally during conversations -- creating GitHub issues, sending Slack messages, reading Google Drive documents, etc.


## Prerequisites

- Node.js 18+ or the runtime required by the specific MCP server
- An account and API credentials for the service you want to integrate
- Claude Code installed and running


## Steps

### 1. Choose an MCP server

Popular MCP servers and where to find them:

| Service | Package | Source |
|---------|---------|--------|
| GitHub | `@modelcontextprotocol/server-github` | npmjs.com |
| Slack | `@modelcontextprotocol/server-slack` | npmjs.com |
| Google Drive | `@anthropic-ai/google-drive-mcp` | Anthropic |
| Jira | `@anthropic-ai/jira-mcp` | Anthropic |
| Filesystem | `@modelcontextprotocol/server-filesystem` | npmjs.com |
| PostgreSQL | `@modelcontextprotocol/server-postgres` | npmjs.com |

For a full list, see the [MCP server directory](https://github.com/modelcontextprotocol/servers).

### 2. Install the MCP server

```bash
npm install -g @modelcontextprotocol/server-github
```

Or install locally in your project:

```bash
npm install @modelcontextprotocol/server-github
```

### 3. Configure in Claude Code settings

Add the MCP server to your Claude Code configuration. Edit `.claude/settings.json` in your project root (or `~/.claude/settings.json` for global config):

```json
{
  "mcpServers": {
    "github": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-github"],
      "env": {
        "GITHUB_PERSONAL_ACCESS_TOKEN": "${GITHUB_TOKEN}"
      }
    }
  }
}
```

Store the actual token in your secrets vault:

```bash
node core/tools/secrets/bin/secrets set GITHUB_TOKEN ghp_your_token_here
```

### 4. Verify the integration

Start a new Claude Code session and ask your PA to use the tool:

- GitHub: "List my open pull requests"
- Slack: "Send a message to #general"
- Google Drive: "Find documents about project X"

If the PA reports the tool is unavailable, check:
- The MCP server is installed correctly
- Environment variables are set
- The settings.json path is correct


## Adding multiple integrations

Repeat steps 1-4 for each service. Each gets its own entry in the `mcpServers` block:

```json
{
  "mcpServers": {
    "github": { "..." : "..." },
    "slack": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-slack"],
      "env": {
        "SLACK_BOT_TOKEN": "${SLACK_TOKEN}"
      }
    }
  }
}
```


## Security notes

- Store all API tokens in the secrets vault, not in plaintext config files
- Use the minimum required permissions when creating API tokens
- Rotate tokens periodically using the secrets vault rotate function
- Review which tools your PA has access to -- more tools means a larger action surface
