# PocketBase MCP Server
Seamless integration between PocketBase and MCP clients through the Model Context Protocol (MCP). This server enables MCP-compatible applications to directly interact with PocketBase databases for collection management, record operations, schema generation, and data analysis.
## β¨ Key Features
- **ποΈ Collection Management**: Create, migrate, and manage collections with custom schemas
- **π Record Operations**: Full CRUD operations with advanced querying and filtering
- **π Schema Generation**: Bidirectional conversion between TypeScript interfaces and PocketBase schemas
- **π Data Analysis**: Intelligent insights and analytics for your collections
- **π Authentication**: User management and authentication workflows
- **β‘ Performance**: Optimized for speed with built-in caching and connection pooling
## π Quick Start
### Installation
```bash
npm install -g pocketbase-cursor-mcp
```
### MCP Client Setup
#### For Cursor AI
1. Open Cursor AI Settings (`Cmd+,` / `Ctrl+,`)
2. Navigate to **AI** β **Model Context Protocol Servers**
3. Add new server:
- **Name**: `pocketbase`
- **Command**: `npx`
- **Args**: `pocketbase-cursor-mcp --url=http://127.0.0.1:8090`
#### For Other MCP Clients
Refer to your MCP client's documentation for server configuration. Use:
- **Server Command**: `npx pocketbase-cursor-mcp`
- **Arguments**: `--url=http://127.0.0.1:8090`
### Basic Configuration
```bash
# Using command line
pocketbase-cursor-mcp --url=http://127.0.0.1:8090
# Using environment variables
export POCKETBASE_URL=http://127.0.0.1:8090
pocketbase-cursor-mcp
```
## π‘ Usage Examples
### Create Collections from TypeScript
```typescript
// Describe your interface to your MCP client
interface User {
username: string;
email: string;
isActive: boolean;
profile: UserProfile;
}
```
### Generate TypeScript from PocketBase
```
Generate TypeScript interfaces from my PocketBase collections
```
### Data Analysis
```
Analyze the "products" collection and provide insights
```
## π οΈ Available Tools
**Collection Management**: `create_collection`, `list_collections`, `delete_collection`, `get_collection_schema`, `update_collection`, `truncate_collection`, `migrate_collection`
**Record Operations**: `create_record`, `list_records`, `update_record`, `delete_record`, `query_collection`
**Authentication**: `authenticate_user`, `create_user`
**Code Generation**: `generate_pb_schema`, `generate_typescript_interfaces`
**Analysis**: `analyze_collection_data`, `backup_database`, `import_data`
**File Management**: `upload_file`, `download_file`, `upload_file_from_url`
**Advanced**: `manage_indexes`
> π **[Complete API Reference β](./docs/api-reference.md)**
## π Documentation
- **[Getting Started](./docs/getting-started.md)** - Installation and configuration guide
- **[Developer Guide](./docs/developer-guide.md)** - How to extend the server with new tools
- **[API Reference](./docs/api-reference.md)** - Complete tool reference and examples
- **[Architecture](./docs/architecture.md)** - System design and architectural decisions
- **[Contributing](./docs/contributing.md)** - Guidelines for contributors
## ποΈ Architecture
Built with a modular, extensible architecture:
```
src/
βββ tools/ # Modular tool system
β βββ schemas/ # Input validation
β βββ handlers/ # Business logic
βββ utils/ # Shared utilities
βββ types/ # TypeScript definitions
βββ config/ # Configuration management
```
**Key Benefits**:
- π§ **Extensible**: Easy to add new tools
- π‘οΈ **Type-Safe**: Full TypeScript coverage
- β‘ **Performance**: Optimized for speed
- π§ͺ **Testable**: Comprehensive test coverage
## Contributing
Contributions are always welcome! Please create an issue or pull request.
## License
MIT