Skip to main content
Glama
README.md6.07 kB
# Onboarded MCP Server An MCP (Model Context Protocol) server that enables AI assistants like Warp to interact with the Onboarded platform. It provides: - **API Discovery** — Automatically fetch and search OpenAPI specs to find available operations - **API Execution** — Execute any Onboarded API operation with automatic authentication - **Entity Memory** — Persist created entity IDs locally so the agent can reference them later - **Source Code Access** — Optionally read files from your local Onboarded repository Credentials are stored securely in macOS Keychain and shared with [onboarded-cli](https://github.com/OnboardedInc/Onboarded-CLI) — tokens never appear in MCP tool calls or responses. ## Setup ### Prerequisites - **Node.js 18+** - **git** - **onboarded-cli** — [github.com/OnboardedInc/Onboarded-CLI](https://github.com/OnboardedInc/Onboarded-CLI) ### Quick Setup (Recommended) The `onboarded` CLI handles everything automatically: ```bash onboarded mcp setup ``` This interactive command will: 1. Ask where to install (default: `./onboarded-mcp` in the current directory) 2. Clone this repository 3. Run `npm install` and `npm run build` 4. Add the server to Warp's MCP config (`~/.warp/mcp.json`) 5. Optionally configure the Onboarded repo path for `repo_read` tool After setup completes: 1. Restart Warp to load the MCP server 2. Authenticate: `onboarded auth login <profile-name>` ### Manual Setup If you prefer to set up manually: ```bash # Clone and build git clone https://github.com/OnboardedInc/onboarded-mcp.git /ABSOLUTE/PATH/TO/onboarded-mcp cd /ABSOLUTE/PATH/TO/onboarded-mcp npm install npm run build ``` Add to `~/.warp/mcp.json`: ```json { "mcpServers": { "onboarded": { "command": "node", "args": ["/ABSOLUTE/PATH/TO/onboarded-mcp/dist/index.js"] } } } ``` Optionally create `~/.config/onboarded-mcp/config.json` for `repo_read` tool: ```json { "onboardedRepoPath": "/ABSOLUTE/PATH/TO/onboarded" } ``` ## Available Tools ### Discovery Tools | Tool | Description | |------|-------------| | `spec_sync` | Fetch and cache OpenAPI specs from Onboarded APIs | | `ops_search` | Search for API operations by keyword | | `ops_describe` | Get detailed parameter and schema info for an operation | ### Execution Tools | Tool | Description | |------|-------------| | `api_call` | Execute any API operation by operationId | | `auth_status` | Check if credentials exist for a profile | ### State Tools | Tool | Description | |------|-------------| | `state_put` | Store an entity reference (ID, name, type) | | `state_query` | Query stored entities with filters | | `state_get` | Get a stored entity by internal or external ID | | `state_delete` | Remove an entity from local storage | ### Repository Tools (optional) Requires `onboardedRepoPath` to be configured. | Tool | Description | |------|-------------| | `repo_read` | Read a file from the local Onboarded repository | | `repo_list` | List files in a directory | ## Tool Reference ### spec_sync Fetch and cache an OpenAPI spec. - `api` (required): `"v1"` or `"internal"` - `env`: `"prod"` or `"staging"` (default: `"prod"`) - `source`: `"url"` or `"cache"` (default: `"url"`) ### ops_search Search for API operations by keyword. - `api` (required): `"v1"` or `"internal"` - `query` (required): Search term (matches operationId, summary, tags, path) - `topK`: Max results (default: 10) ### ops_describe Get detailed schema for an operation. - `api` (required): `"v1"` or `"internal"` - `operationId` (required): The operation to describe ### api_call Execute an API operation. - `api` (required): `"v1"` or `"internal"` - `operationId` (required): The operation to call - `params`: Path and query parameters as object - `body`: Request body for POST/PUT/PATCH - `profile`: Auth profile name (default: `"default"`) - `dryRun`: If `true`, return the request without executing ### auth_status Check authentication status. - `profile`: Profile name (default: `"default"`) ### state_put Store an entity reference. - `entityType` (required): e.g., `"employee"`, `"company"` - `api` (required): `"v1"` or `"internal"` - `externalId`: ID from the Onboarded API - `name`: Human-readable name - `data`: Additional JSON data - `env`: `"prod"` or `"staging"` (default: `"prod"`) ### state_query Query stored entities. - `entityType`: Filter by type - `api`: Filter by API - `env`: Filter by environment - `nameContains`: Filter by name substring - `limit`: Max results (default: 100) - `offset`: Pagination offset ### state_get Get a stored entity. - `id`: Internal UUID, or - `externalId` + `api` + `env`: Look up by Onboarded API ID ### state_delete Delete a stored entity. - `id` (required): Internal UUID ### repo_read Read a file from the configured repository. - `path` (required): Relative path (e.g., `"src/models/employee.py"`) - `startLine`: Start line number (1-indexed) - `endLine`: End line number (1-indexed) ### repo_list List files in a directory. - `path`: Relative path (default: root) - `recursive`: List recursively (default: `false`) - `maxDepth`: Max depth for recursion (default: 3) ## Data Storage All data is stored locally and created automatically on first run: | Path | Purpose | |------|---------| | `~/.config/onboarded-mcp/config.json` | User configuration | | `~/.cache/onboarded-mcp/` | Cached OpenAPI specs | | `~/.local/share/onboarded-mcp/state.db` | SQLite database for entity memory | ### Viewing Stored Entities ```bash # Query all entities sqlite3 ~/.local/share/onboarded-mcp/state.db "SELECT * FROM entities;" # Interactive mode sqlite3 ~/.local/share/onboarded-mcp/state.db ``` ## Security - Tokens are stored in macOS Keychain, never in files - Tokens never appear in MCP tool arguments or responses - Authorization headers are redacted in dry-run output - Shares credentials with `onboarded-cli` — authenticate once, use everywhere ## Development ```bash npm run build # Compile TypeScript npm run dev # Watch mode npm run typecheck # Type checking only ```

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/OnboardedInc/onboarded-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server