Model Context Protocol (MCP) server for integrating with Bika.ai platform.
This MCP server provides integration with Bika.ai's database and automation platform, enabling AI assistants to:
- Query and filter database records
- Create, update, and delete records
- Upload and manage attachments
- Work with formulas and field types
- Access automation and webhooks
- Database Operations: Full CRUD operations on Bika databases
- Advanced Filtering: Support for Bika's Filter Query Language
- Field Types: Handle all 23 Bika field types with proper type safety
- Attachments: Upload and manage files
- Type Safety: Full TypeScript support with comprehensive type definitions
- Node.js >= 18.0.0
- npm or yarn
- Bika.ai account with API access token
Once published, you can install directly via npx:
# No installation needed! Run directly with npx
npx bika-mcp# Clone the repository
git clone https://github.com/hamchowderr/bika-mcp.git
cd bika-mcp
# Install dependencies
npm install
# Build the project
npm run buildThe server requires the following environment variables:
| Variable | Required | Description |
|---|---|---|
BIKA_API_TOKEN |
Yes | Your Bika.ai API access token |
BIKA_SPACE_ID |
No | Default space ID (can be overridden per-tool) |
Option 1: Environment variables
# Windows
set BIKA_API_TOKEN=your-api-token-here
set BIKA_SPACE_ID=your-default-space-id
# macOS/Linux
export BIKA_API_TOKEN="your-api-token-here"
export BIKA_SPACE_ID="your-default-space-id"Option 2: Create a .env file
Create a .env file in the project root:
BIKA_API_TOKEN=your-api-token-here
BIKA_SPACE_ID=your-default-space-idThe recommended way to use this MCP server is with Claude Desktop using stdio transport.
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
Add to your Claude Desktop configuration:
{
"mcpServers": {
"bika": {
"command": "npx",
"args": ["-y", "bika-mcp"],
"env": {
"BIKA_API_TOKEN": "your-token-here",
"BIKA_SPACE_ID": "your-default-space-id"
}
}
}
}For development or local installations:
{
"mcpServers": {
"bika": {
"command": "node",
"args": ["C:\\absolute\\path\\to\\bika-mcp\\dist\\index.js"],
"env": {
"BIKA_API_TOKEN": "your-token-here",
"BIKA_SPACE_ID": "your-default-space-id"
}
}
}
}Important: Restart Claude Desktop after updating the configuration.
Test your server locally with the official MCP Inspector:
# Run the inspector
npm run inspector
# Or run directly
npx @modelcontextprotocol/inspector dist/index.jsThis will:
- Start the MCP server
- Launch the inspector web interface at
http://localhost:6274 - Allow you to test tools, resources, and prompts interactively
Run the server directly for stdio transport:
# Build and start
npm run build
npm start
# Development mode with watch
npm run devDeploy as a custom connector for HTTP-based MCP access.
-
Initial Deployment:
# Install Vercel CLI if needed npm install -g vercel # Deploy to Vercel npx vercel@latest
-
Production Deployment:
npx vercel@latest --prod
-
Set Environment Variables:
In your Vercel project settings (Settings → Environment Variables), add:
BIKA_API_TOKEN- Your Bika API token (required for authenticating with Bika.ai)BIKA_SPACE_ID- Default space ID (optional)
-
Configure as Custom Connector in Claude Desktop:
IMPORTANT: Custom connectors must be configured via the Claude Desktop UI, NOT via
claude_desktop_config.json.To add the custom connector:
- Open Claude Desktop
- Go to Settings → Connectors
- Click Add Custom Connector
- Enter your deployment URL:
https://your-project.vercel.app/mcp
Note: The
BIKA_API_TOKENenvironment variable in Vercel is used ONLY for the MCP server to authenticate with Bika.ai. There is no client authentication - anyone with your deployment URL can connect to your MCP server. -
Test the Deployment:
# Check server is responding curl https://your-project.vercel.app
Stdio (Recommended):
- Local only, maximum security
- No network exposure
- Best for personal use
HTTP (Vercel Deployment):
- For remote access when you're not at your computer
- Can share URL with trusted people who need access to your Bika account
- Simpler than setting up VPN or remote desktop
This MCP server can be used as an MCP client in n8n workflows for automation:
- Add MCP Node to your workflow
- Configure Connection:
- URL:
https://your-deployment.vercel.app/mcp - Authentication: None
- URL:
- Use Bika Tools in your automation workflows
All 22+ Bika tools are available for use in n8n:
- Query and filter database records with FQL
- Create, update, delete records (single and batch operations)
- Manage databases, fields, and views
- Work with nodes, webhooks, and user profiles
- Full automation integration with your Bika workspace
- Automated Data Sync: Sync records between Bika and other systems
- Scheduled Updates: Batch update records on a schedule
- Webhook Processing: Process incoming webhooks and update Bika records
- Data Migration: Move data between databases with transformation
- Reporting: Extract data from Bika for custom reports
Note: The MCP server must be deployed to Vercel to use with n8n. Local stdio transport is not supported for n8n integration.
Bika.ai AI Agents support connecting to remote MCP servers through the Custom MCP Server skillset. This enables powerful workflows like migrating data from AITable to Bika.
The Model Context Protocol (MCP) is an open standard that allows AI Agents to connect to external data sources and tools. In Bika.ai, AI Agents can use the Custom MCP Server skillset to access remote MCP servers and extend their capabilities.
- Open AI Agent Editor in your Bika workspace
- Click "Add" under the Skillset section
- Select "Custom MCP Server" from the skillsets list
- Enter JSON configuration for your MCP servers:
{
"mcpServers": {
"bika": {
"url": "https://your-deployment.vercel.app/mcp"
}
}
}- Click "OK" to add the MCP server
- Click "Save" to finalize the configuration
Your AI Agent can now use all 22+ tools from the Bika MCP server!
Use the AITable MCP Server in your Bika AI Agent to read data from AITable. The AI Agent can then use Bika's native tools to write data into Bika databases.
Important: You only need the AITable MCP in your Bika AI Agent. Bika can already read and write its own data natively - you don't need to add this Bika MCP server to a Bika AI Agent.
Configuration in Bika AI Agent:
{
"mcpServers": {
"aitable": {
"url": "https://your-aitable-mcp-deployment.vercel.app/mcp"
}
}
}Migration Workflow:
- Read from AITable - Use AITable MCP tools to query records
- Transform Data - AI Agent processes and maps fields
- Write to Bika - Use Bika's native database tools (no MCP needed)
Example Use Cases:
- Database Migration - Move entire databases from AITable to Bika
- Selective Sync - Migrate specific records based on filters
- Field Mapping - Transform field types during migration
- Incremental Updates - Sync changes between systems
Benefits:
- ✅ AI-powered data transformation
- ✅ Intelligent field mapping
- ✅ No manual coding required
- ✅ Uses Bika's native tools for writing data
Learn More:
- AITable MCP Server - For reading AITable data
- Bika Custom MCP Server Documentation
Note: This Bika MCP server is intended for use with Claude Desktop, n8n, or other MCP clients - not for use within Bika AI Agents (since Bika already has native tools).
This MCP server uses different authentication strategies depending on the transport:
Stdio Transport (Recommended for Personal Use)
- Uses environment variables for Bika.ai API authentication
- No client authentication required (local process, no network exposure)
- Most secure for personal use
- Configure via
claude_desktop_config.json:{ "mcpServers": { "bika": { "command": "npx", "args": ["-y", "bika-mcp"], "env": { "BIKA_API_TOKEN": "your-token-here", "BIKA_SPACE_ID": "your-default-space-id" } } } }
HTTP Transport (Custom Connector)
- Deployed to Vercel as a serverless function
- No client authentication - URL-based access only
- CORS-enabled for browser-based access
- Configure via Claude Desktop UI (Settings → Connectors)
The HTTP transport has no client authentication - anyone with your deployment URL can connect.
How Authentication Works:
BIKA_API_TOKENin Vercel → Used ONLY for server → Bika.ai API calls- No authentication required from MCP clients
- URL acts as the only access control
CRITICAL SECURITY WARNINGS:
-
Keep Repository Private
⚠️ NEVER make this GitHub repository public⚠️ If the repo is public and connected to Vercel CLI, your URL may be exposed- ✅ Keep the repository private
- ✅ Share the GitHub repo link so others can clone and deploy their own instance
-
Keep Deployment URL Secret
⚠️ Your deployment URL = full access to your Bika account⚠️ Anyone with the URL can read, create, update, and delete all your Bika data⚠️ Do NOT share your deployment URL publicly or commit it to git- ✅ Treat your deployment URL like a password
- ✅ Only share with absolutely trusted individuals
-
Keep API Token Secret
⚠️ Never commitBIKA_API_TOKENto git (use.envlocally, Vercel env vars for deployment)⚠️ Never share your API token- ✅ Use Vercel environment variables for secure storage
- ✅ Rotate your API token periodically
-
Deployment Method
⚠️ Do NOT connect repository to Vercel automatic deployments from GitHub- ✅ Deploy manually using Vercel CLI (
npx vercel --prod) - ✅ This prevents accidental URL exposure through GitHub integration
-
Monitoring
- ✅ Monitor Vercel access logs for unexpected activity
- ✅ Check for unusual patterns in your Bika account
- ✅ Redeploy to get new URL if compromised
Recommended for Maximum Security:
- Use stdio transport (local only) instead of HTTP deployment
- Only deploy to Vercel if you absolutely need remote access
This MCP server supports dual transport following official MCP patterns:
- Primary entry point for Claude Desktop
- Direct process communication via stdin/stdout
- Low latency, perfect for local development
- Executable via
npxornode dist/index.js
- Vercel serverless function with CORS support
- Uses
mcp-handlerlibrary for HTTP transport - No client authentication - URL-based access only
- Supports custom connector deployments
- All requests handled at root path with catch-all routing
Both transports share the same core business logic while providing different communication mechanisms.
bika-mcp/
├── src/
│ ├── index.ts # Stdio entry point
│ ├── server.ts # MCP server setup (stdio)
│ ├── schemas.ts # Zod schemas for validation
│ ├── tools/ # MCP tool implementations
│ ├── resources/ # MCP resource providers
│ └── types/ # TypeScript type definitions
├── api/
│ ├── server.ts # HTTP entry point (Vercel)
│ └── health.ts # Health check endpoint
├── public/
│ └── index.html # Landing page
├── bika-docs/ # Bika API documentation
│ ├── api/ # API endpoints documentation
│ ├── field-cell-value/ # Field types documentation
│ ├── filter-query-language/ # FQL documentation
│ └── formulas/ # Formulas documentation
├── dist/ # Compiled output
├── package.json
├── tsconfig.json
├── vercel.json # Vercel configuration
└── README.md
Comprehensive documentation for Bika.ai integration can be found in the bika-docs/ directory:
- API Documentation - Bika API endpoints and usage
- Field Cell Value - Field types and data formats
- Filter Query Language - Query syntax and examples
# Clean build artifacts
npm run clean
# Build TypeScript
npm run build
# Watch mode for development
npm run devThe MCP server provides comprehensive Bika.ai integration tools:
bika_get_system_meta- Get system metadata and version informationbika_list_spaces- List all accessible Bika spaces
bika_get_database- Get database metadata, schema, and configurationbika_get_database_fields- Get field definitions and schemasbika_get_database_views- Get all views from a databasebika_get_records_v1- Query records with filtering (v1 API)bika_list_records_v2- Advanced record queries with pagination, sorting (v2 API)bika_get_record_v2- Get a single record with formatting options (v2 API)bika_create_record_v1- Create a new record (v1 API)bika_update_record_v1- Update an existing record (v1 API)bika_update_record_v2- Update a record with field key formatting (v2 API)bika_delete_record_v1- Delete a record (v1 API)bika_delete_record_v2- Delete a record (v2 API)bika_batch_create_records_v2- Batch create up to 10 records (v2 API)bika_batch_update_records_v2- Batch update up to 10 records (v2 API)bika_batch_delete_records_v2- Batch delete up to 10 records (v2 API)
bika_get_node- Get information about a specific node (database, folder, etc.)bika_list_nodes- List all nodes in a space
bika_get_user_profile- Get current user profile information
bika_list_outgoing_webhooks- List all outgoing webhooksbika_create_outgoing_webhook- Create a new outgoing webhookbika_delete_outgoing_webhook- Delete an outgoing webhook
Contributions are welcome! Please read the documentation in bika-docs/ to understand the Bika.ai API.
If you're using Claude Code or other AI assistants to work on this codebase, run /init to generate a CLAUDE.md file with architectural guidance and development patterns specific to this project.
MIT
If you're migrating from AITable to Bika, check out the AITable MCP Server. It provides similar MCP integration for AITable, making it easy to read data from AITable and write it to Bika using both servers together.
- Bika.ai
- Model Context Protocol
- TypeScript SDK
- AITable MCP Server - MCP server for AITable integration
