Bike MCP Server
# Bike MCP Server
MCP (Model Context Protocol) server for [Bike](https://www.hogbaysoftware.com/bike/) outliner app on macOS.
## Features
### Reading
- `bike_list_documents` - List all open documents
- `bike_get_document_outline` - Read document structure (supports max_depth)
- `bike_query_rows` - Search rows using Bike's outline path syntax
### Writing
- `bike_create_document` - Create new documents with optional structure
- `bike_create_rows` - Add rows with nested children and positioning
- `bike_update_row` - Edit row content and type (batch support)
- `bike_delete_row` - Remove rows (batch support)
- `bike_group_rows` - Group/move multiple rows under a parent
## Requirements
- macOS (uses AppleScript)
- Node.js 18+
- Bike app installed
## Installation
### Via Desktop Extension (recommended)
1. Download `bike-mcp-server.mcpb` from [releases](https://github.com/hildersantos/bike-mcp-server/releases)
2. Double-click the file to open with Claude Desktop
3. Click Install
### From source
```bash
cd bike-mcp-server
npm install
npm run build
```
## Usage with Claude Desktop
Add to your Claude Desktop config file (`~/Library/Application Support/Claude/claude_desktop_config.json`):
```json
{
"mcpServers": {
"bike": {
"command": "node",
"args": ["/path/to/bike-mcp-server/dist/index.js"]
}
}
}
```
Then restart Claude Desktop.
## Development
```bash
# Watch mode for development
npm run dev
# Build
npm run build
# Run directly
npm start
```
## How It Works
The server communicates with Bike via AppleScript, using the `osascript` command. All operations require Bike to be running with a document open.
The outline structure is returned as human-readable indented text:
```
My Document (doc:abc123)
- First item [row:row-1]
- Sub-item [row:row-1-1]
- Second item [row:row-2]
```
## Example Prompts
Here are some prompts you can use with Claude Desktop:
1. **Explore your outlines**: "List my open Bike documents and show me the outline of the first one"
2. **Create structured content**: "Create a new Bike document with a project plan that has 3 main phases, each with 2-3 tasks"
3. **Search and transform**: "Find all rows containing 'TODO' in my Bike document and convert them to task items"
## Testing
No account or authentication required. To test the server:
1. Open Bike app on macOS
2. Create or open a document with some sample content
3. Use Claude Desktop to interact with your outlines
## Privacy
This server does not collect, store, or transmit any personal data. All communication happens locally between Claude Desktop and the Bike app via AppleScript. No data leaves your machine.
## Support
- [GitHub Issues](https://github.com/hildersantos/bike-mcp-server/issues)
## License
MIT
TDQS
Scored across 8 tools
Each tool targets a distinct operation: listing documents, retrieving outlines, creating documents, creating rows, grouping rows, updating rows, deleting rows, and querying. Even though create_document and create_rows both create structure, they operate at different levels (document vs. rows within a document), avoiding ambiguity.
All tools follow the pattern 'bike_<verb>_<noun>' using imperative verbs (list, get, create, group, update, delete, query). The naming is uniform and predictable, with only minor plural/singular variation that does not hinder understanding.
With 8 tools, the server is well-scoped for a focused outlining application. Each tool addresses a core functionality without unnecessary bloat, and the count feels natural for the domain.
The tool set covers essential CRUD operations for rows (create, read via outline/query, update, delete) and document lifecycle (create, list). Missing operations like explicit row reordering or document closing are minor and can be worked around via existing tools, making the surface largely complete.