# ExecuFunction

**Category:** 👤 Customer Data Platforms  
**Repository:** https://github.com/execufunction-mcp/mcp-server  
**Views:** 0  
**Installs:** 0  
**Upvotes:** 0  
**Directory Page:** https://allmcps.com/mcp/execufunction

## Description
AI executive function assistant — tasks, calendar, knowledge, code indexing, and CRM for your IDE.

## Claude Desktop Quick Installation
Heuristic fallback — verify the package name and runner against the repository README before running it. Uses `npx` (confidence: low):

```json
"mcpServers": {
  "execufunction": {
    "command": "npx",
    "args": ["-y","execufunction"]
  }
}
```

## Documentation & README

# ExecuFunction MCP Server

A [Model Context Protocol](https://modelcontextprotocol.io/) server that exposes ExecuFunction tools to IDE clients like Cursor, Claude Desktop, and VS Code.

## Quick Start

### 1. Create a Personal Access Token

1. Go to ExecuFunction → Settings → Developer → Access Tokens
2. Click "Create Token"
3. Name it (e.g., "Cursor MCP")
4. Select scopes: `mcp:*` (or specific scopes like `projects:read`, `tasks:write`)
5. **Save the token immediately** - it's only shown once!

### 2. Configure Your MCP Client

#### Claude Desktop

Edit `~/Library/Application Support/Claude/claude_desktop_config.json`:

```json
{
  "mcpServers": {
    "execufunction": {
      "command": "npx",
      "args": ["@execufunction/mcp-server"],
      "env": {
        "EXF_API_URL": "https://execufunction.com",
        "EXF_PAT": "exf_pat_your_token_here"
      }
    }
  }
}
```

#### Cursor

Add to your Cursor MCP settings:

```json
{
  "execufunction": {
    "command": "npx",
    "args": ["@execufunction/mcp-server"],
    "env": {
      "EXF_API_URL": "https://execufunction.com",
      "EXF_PAT": "exf_pat_your_token_here"
    }
  }
}
```

#### VS Code

Configure in your MCP extension settings.

### 3. Restart Your IDE

After configuration, restart your IDE to load the MCP server.

## Available Tools

### Projects
| Tool | Description | Mutates |
|------|-------------|---------|
| `project_list` | List all projects with status filtering | No |
| `project_create` | Create a new project | Yes |
| `project_update` | Update project name, summary, status, emoji | Yes |
| `project_archive` | Archive a project (destructive) | Yes |
| `project_get_context` | Get full project context (tasks, notes, signals) | No |

### Tasks
| Tool | Description | Mutates |
|------|-------------|---------|
| `task_list` | List tasks with project/status/phase/effort filters | No |
| `task_get` | Get a single task with full details | No |
| `task_create` | Create a new task with priority, phase, effort, acceptance criteria | Yes |
| `task_update` | Update task fields (title, status, priority, phase, effort, scope) | Yes |
| `task_delete` | Delete a task (destructive) | Yes |
| `task_complete` | Mark a task as complete | Yes |
| `task_link_code` | Link a task to a code file/commit | Yes |

### Knowledge / Notes
| Tool | Description | Mutates |
|------|-------------|---------|
| `note_list` | List notes with type and project filters | No |
| `note_get` | Get a single note with full content | No |
| `note_search` | Semantic search across knowledge base | No |
| `note_create` | Create a new note (markdown) | Yes |
| `note_update` | Update note title, content, or type | Yes |
| `note_delete` | Delete a note (destructive) | Yes |

### People
| Tool | Description | Mutates |
|------|-------------|---------|
| `people_search` | Search contacts | No |

### Calendar
| Tool | Description | Mutates |
|------|-------------|---------|
| `calendar_list_events` | List calendar events for a date range | No |
| `calendar_create_event` | Create a new calendar event | Yes |
| `calendar_update_event` | Update a calendar event | Yes |
| `calendar_delete_event` | Delete a calendar event (destructive) | Yes |

### Codebase Indexing
| Tool | Description | Mutates |
|------|-------------|---------|
| `codebase_list` | List indexed repositories | No |
| `codebase_register` | Register a new repository for indexing | Yes |
| `codebase_status` | Check indexing status and stats | No |
| `codebase_snapshot_status` | Get latest index snapshot for a repository | No |
| `codebase_materialize_snapshot` | Download a snapshot archive | No |
| `codebase_index` | Full index: scan and upload all files | Yes |
| `codebase_index_incremental` | Incremental index: git-aware, changed files only | Yes |
| `codebase_delete` | Delete a repository and all indexed data (destructive) | Yes |
| `codebase_search` | Semantic search across indexed code | No |

### Code History & Expertise
| Tool | Description | Mutates |
|------|-------------|---------|
| `code_who_knows` | Find experts for a code area | No |
| `code_compute_expertise` | Refresh the expertise index | Yes |
| `code_history` | Get commit history for a repository | No |
| `git_blame_symbol` | Run git blame on a local file range | No |

### Code Memories
| Tool | Description | Mutates |
|------|-------------|---------|
| `code_memory_store` | Store a fact about the codebase | Yes |
| `code_memory_search` | Search stored code facts | No |
| `code_memory_list` | List all stored code memories | No |
| `code_memory_delete` | Delete a code memory (destructive) | Yes |

### Vault / Secrets
| Tool | Description | Mutates |
|------|-------------|---------|
| `vault_list` | List vault entries (metadata only) | No |
| `vault_create` | Store a new encrypted secret | Yes |
| `vault_read` | Decrypt and read a secret (audit-logged) | No |
| `vault_update` | Update vault entry metadata | Yes |
| `vault_search` | Search vault entries by name/description | No |

### Entity Graph
| Tool | Description | Mutates |
|------|-------------|---------|
| `entity_graph` | Traverse the entity relationship graph | No |
| `schema_introspect` | Discover the full data model and entity types | No |

### Document Upload
| Tool | Description | Mutates |
|------|-------------|---------|
| `upload_document` | Upload a PDF, Markdown, or text file into Knowledge | Yes |

### Datasets (feature flag: `DATASETS_ENABLED=true`)
| Tool | Description | Mutates |
|------|-------------|---------|
| `dataset_list` | List datasets | No |
| `dataset_create` | Create a dataset | Yes |
| `dataset_query` | Query records by filters/sorts | No |
| `dataset_mutate` | Create/update/delete records (destructive) | Yes |
| `dataset_schema_modify` | Add/update/delete fields (destructive) | Yes |
| `dataset_summarize` | Summarize schema and sample rows | No |
| `dataset_facets` | Value distributions for fields | No |
| `dataset_quality_check` | Null rates, duplicates, uniqueness violations | No |
| `dataset_aggregate` | Grouped metrics (count, avg, sum, etc.) | No |
| `dataset_bucket` | Bucket numeric/date fields into ranges | No |
| `dataset_rank` | Rank records by sorts or weighted formula | No |
| `dataset_analyze` | Generate natural-language insights | No |
| `dataset_compare` | Compare metrics across segments | No |
| `dataset_export` | Export records as CSV | No |
| `dataset_join_rows` | Self-join with alias-scoped fields | No |
| `dataset_compute_fields` | Compute derived columns (lag, diff, rolling) | No |
| `dataset_timeseries` | Time series analysis with transforms | No |
| `dataset_materialize_result` | Save derived result as a new dataset | Yes |
| `dataset_plot_result` | Validate chart payload from derived result | No |

### Ontology (feature flag: `DATASET_ONTOLOGY_ENABLED=true`)
| Tool | Description | Mutates |
|------|-------------|---------|
| `object_find` | Find objects by type and property filters | No |
| `object_links` | Traverse graph links for an object | No |
| `object_action_run` | Run a declarative action on an object (destructive) | Yes |

## Usage Examples

### 1. Get project context and create a task

**User prompt:** "Get context for my auth project and create a task to fix the token refresh bug"

**Tools invoked:**
1. `project_list` — Lists projects to find the auth project
2. `project_get_context` — Retrieves tasks, notes, and signals for the project
3. `task_create` — Creates a new task with title, description, and project linkage

**Result:** The AI reads existing project context (open tasks, recent notes) to avoid duplicates, then creates a well-scoped task linked to the correct project.

### 2. Semantic code search

**User prompt:** "Find where we handle webhook signature verification"

**Tools invoked:**
1. `codebase_search` — Searches indexed code for "webhook signature verification"

**Result:** Returns ranked code chunks with file paths, line numbers, and surrounding context. The AI can then read the matched files to answer follow-up questions.

### 3. Knowledge search and note creation

**User prompt:** "Search for our deployment process and create a note summarizing the steps"

**Tools invoked:**
1. `note_search` — Searches the knowledge base for "deployment process"
2. `code_memory_search` — Searches stored code facts for deployment-related memories
3. `note_create` — Creates a new note with a markdown summary of the deployment steps

**Result:** The AI synthesizes information from existing notes and code memories into a single reference note, linked to the relevant project.

## Resources

The server also exposes project context bundles as MCP resources:

- `exf://projects/{id}/context` - Full context bundle for a project

## Environment Variables

| Variable | Required | Description |
|----------|----------|-------------|
| `EXF_API_URL` | Yes | ExecuFunction API URL |
| `EXF_PAT` | Yes | Personal Access Token |

## Development

```bash
# Install dependencies
npm install

# Run in development mode
npm run dev

# Test with MCP Inspector
npm run inspect

# Build for production
npm run build
```

## Security

- PATs are stored as SHA-256 hashes - plaintext is never stored
- Tokens can be revoked at any time from ExecuFunction Settings
- Use minimal scopes for your use case
- Never commit tokens to version control

## Scopes

| Scope | Description |
|-------|-------------|
| `mcp:*` | All MCP operations (recommended for IDE use) |
| `projects:read` | Read project data |
| `projects:write` | Create/update projects |
| `tasks:read` | Read tasks |
| `tasks:write` | Create/update/complete tasks |
| `knowledge:read` | Search/read notes |
| `knowledge:write` | Create notes |
| `calendar:read` | View calendar/free slots |
| `calendar:write` | Create calendar events |
| `people:read` | Search/view contacts |
| `people:write` | Create/update contacts |

## Troubleshooting

### "EXF_API_URL environment variable is required"

Make sure you've configured the `env` section in your MCP client config.

### "Invalid token"

1. Check that your token starts with `exf_pat_`
2. Verify the token hasn't been revoked
3. Check the token hasn't expired

### Tools not appearing

1. Restart your IDE after configuration changes
2. Check IDE logs for MCP errors
3. Try running `npm run inspect` to test the server directly

## License

MIT

