README.mdโข3.91 kB
# 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