# Siftable MCP server

> Exposes governed work, knowledge, calendar, people, datasets, and Vault tools to IDE clients like Cursor and Claude Desktop.

- Repository: https://github.com/execufunction-mcp/mcp-server
- Page: https://hostedmcp.org/servers/execufunction-mcp/mcp-server
- Transport: stdio, remote
- Stars: 0
- License: MIT
- Latest version: 1.5.1

## Install

### Claude Code

```sh
claude mcp add --env 'SIFT_PAT=<YOUR_SIFT_PAT>' --env 'SIFT_API_URL=<SIFT_API_URL>' mcp-server -- npx -y @siftable/mcp-server
```

### Cursor (`~/.cursor/mcp.json`)

```json
{
  "mcpServers": {
    "mcp-server": {
      "command": "npx",
      "args": [
        "-y",
        "@siftable/mcp-server"
      ],
      "env": {
        "SIFT_PAT": "<YOUR_SIFT_PAT>",
        "SIFT_API_URL": "<SIFT_API_URL>"
      }
    }
  }
}
```

### VS Code (`.vscode/mcp.json`)

```json
{
  "servers": {
    "mcp-server": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "@siftable/mcp-server"
      ],
      "env": {
        "SIFT_PAT": "<YOUR_SIFT_PAT>",
        "SIFT_API_URL": "<SIFT_API_URL>"
      }
    }
  }
}
```

### VS Code CLI

```sh
code --add-mcp '{"name":"mcp-server","type":"stdio","command":"npx","args":["-y","@siftable/mcp-server"],"env":{"SIFT_PAT":"<YOUR_SIFT_PAT>","SIFT_API_URL":"<SIFT_API_URL>"}}'
```

### Claude Desktop (`claude_desktop_config.json`)

```json
{
  "mcpServers": {
    "mcp-server": {
      "command": "npx",
      "args": [
        "-y",
        "@siftable/mcp-server"
      ],
      "env": {
        "SIFT_PAT": "<YOUR_SIFT_PAT>",
        "SIFT_API_URL": "<SIFT_API_URL>"
      }
    }
  }
}
```

### Codex

```sh
codex mcp add mcp-server --env 'SIFT_PAT=<YOUR_SIFT_PAT>' --env 'SIFT_API_URL=<SIFT_API_URL>' -- npx -y @siftable/mcp-server
```

### Codex config.toml (`~/.codex/config.toml`)

```toml
[mcp_servers.mcp-server]
command = "npx"
args = ["-y", "@siftable/mcp-server"]

[mcp_servers.mcp-server.env]
SIFT_PAT = "<YOUR_SIFT_PAT>"
SIFT_API_URL = "<SIFT_API_URL>"
```

### Gemini CLI

```sh
gemini mcp add -s user -e 'SIFT_PAT=<YOUR_SIFT_PAT>' -e 'SIFT_API_URL=<SIFT_API_URL>' mcp-server npx -- -y @siftable/mcp-server
```

### Gemini settings.json (`~/.gemini/settings.json`)

```json
{
  "mcpServers": {
    "mcp-server": {
      "command": "npx",
      "args": [
        "-y",
        "@siftable/mcp-server"
      ],
      "env": {
        "SIFT_PAT": "<YOUR_SIFT_PAT>",
        "SIFT_API_URL": "<SIFT_API_URL>"
      }
    }
  }
}
```

## Environment variables

| Name | Required | Secret | Description |
|---|---|---|---|
| `SIFT_PAT` | yes | yes | Personal Access Token (create at Settings → Developer → Access Tokens) |
| `SIFT_API_URL` | yes | no | Siftable API URL (e.g. https://siftable.io) |

## Tools (106)

- `context_current`
- `find_capability`
- `request_capability`
- `project_list`
- `project_create`
- `project_update`
- `project_archive`
- `project_get_context`
- `task_list`
- `task_get`
- `task_create`
- `task_update`
- `task_delete`
- `task_bulk_delete`
- `task_complete`
- `agent_list`
- `agent_get`
- `agent_create`
- `agent_update`
- `agent_disable`
- `agent_work_list`
- `work_item_list`
- `work_item_get`
- `work_item_create`
- `work_item_dependencies_replace`
- `work_item_claim`
- `work_dependency_policy_get`
- `work_dependency_policy_update`
- `work_item_start`
- `work_item_heartbeat`
- `work_item_block`
- `work_item_review`
- `work_item_complete`
- `work_item_fail`
- `work_item_release`
- `work_item_cancel`
- `note_list`
- `note_get`
- `note_search`
- `note_create`
- `note_update`
- `note_delete`
- `note_bulk_delete`
- `people_search`
- `person_create`
- `person_update`
- `person_delete`
- `people_bulk_delete`
- `person_enrichment_availability`
- `person_enrichment_run`
- `person_enrichment_apply`
- `organization_search`
- `organization_create`
- `organization_update`
- `organization_delete`
- `organization_bulk_delete`
- `organization_enrichment_availability`
- `organization_enrichment_preview`
- `lead_discovery_company_search`
- `lead_discovery_candidate_list`
- `lead_discovery_candidate_review`
- `lead_discovery_import_plan_create`
- `calendar_list_events`
- `calendar_create_event`
- `calendar_update_event`
- `calendar_delete_event`
- `git_blame_symbol`
- `code_memory_store`
- `code_memory_search`
- `code_memory_list`
- `code_memory_delete`
- `vault_list`
- `vault_create`
- `vault_update`
- `vault_search`
- `vault_audit`
- `vault_materialization_request`
- `vault_materialization_status`
- `capability_list`
- `capability_describe`
- `capability_execute`
- `entity_graph`
- `schema_introspect`
- `upload_document`
- `dataset_list`
- `dataset_create`
- `dataset_query`
- `dataset_mutate`
- `dataset_schema_modify`
- `dataset_summarize`
- `dataset_facets`
- `dataset_quality_check`
- `dataset_aggregate`
- `dataset_bucket`
- `dataset_rank`
- `dataset_analyze`
- `dataset_compare`
- `dataset_export`
- `dataset_join_rows`
- `dataset_compute_fields`
- `dataset_timeseries`
- `dataset_materialize_result`
- `dataset_plot_result`
- `object_find`
- `object_links`
- `object_action_run`

## FAQ

### How is lead discovery handled?

Lead discovery is disabled by default and requires specific granted scopes like lead_discovery:read or lead_discovery:write.

### Can I perform company searches?

Yes, but company search is bounded to one paid Crustdata request and shows a maximum charge before dispatch.

### How does person enrichment work?

Person enrichment returns stored profile and fact proposals, which can be applied using specific field names and fact IDs.
