Skip to main content

Custom Extensions Overview

Custom extensions allow you to add specialized capabilities to ZeroTwo beyond the built-in tools. Create custom integrations, connect proprietary systems, or leverage Model Context Protocol (MCP) servers for advanced functionality.
Custom extensions are available on Pro, Team, and Enterprise plans. Enterprise plans include advanced features like custom MCP server hosting and private tool registries.

What Are Custom Extensions?

Custom extensions are tools that extend ZeroTwo’s capabilities:

MCP Servers

Connect to Model Context Protocol servers for standardized integrations

Custom Tools

Build your own tools with custom logic and API connections

API Integrations

Connect to proprietary or third-party APIs

Internal Systems

Access your company’s databases, CRMs, or custom platforms

Model Context Protocol (MCP)

MCP is an open protocol that standardizes how AI systems connect to data sources and tools.

What is MCP?

Model Context Protocol provides:
  • Standardized communication between AI and external systems
  • Reusable server implementations
  • Secure, controlled access to resources
  • Community-driven ecosystem of integrations
MCP was created by Anthropic and is supported by ZeroTwo natively. Learn more at modelcontextprotocol.io.

MCP Architecture

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”         β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”         β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  ZeroTwo    β”‚ ◄─MCP──►│ MCP Server  β”‚ ◄──────►│ Data Source  β”‚
β”‚  (Client)   β”‚         β”‚             β”‚         β”‚ (API/DB/etc) β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜         β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜         β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
Components:
  • Client: ZeroTwo (requests resources/tools)
  • Server: MCP server (provides capabilities)
  • Resources: Data, files, system access

Built-in MCP Servers

ZeroTwo includes pre-configured MCP servers:
Access GitHub repositoriesCapabilities:
  • Read repository contents
  • Browse file structures
  • View commits and history
  • Read issues and pull requests
  • Search code across repos
Setup: Connect your GitHub account in Settings > IntegrationsExample use:
Show me the recent commits in the main branch of my project

Adding Custom MCP Servers

Connect your own MCP servers to ZeroTwo.

Using Public MCP Servers

1

Find MCP server

Browse available MCP servers:
2

Get server details

You’ll need:
  • Server URL or command
  • Authentication method
  • Required permissions
Example server config:
{
  "name": "weather-server",
  "url": "https://mcp.weather-api.com",
  "auth": "bearer",
  "token": "your-api-key"
}
3

Add to ZeroTwo

Navigate to Settings > Integrations > MCP ServersClick + Add MCP Server
4

Configure server

Server Details:
  • Name: Friendly name for the server
  • URL: Server endpoint
  • Authentication: Choose auth method
  • API Key: If required
Permissions:
  • Select which resources the server can access
  • Choose allowed operations
  • Set usage limits
5

Test connection

Click Test Connection to verify
If successful, the server is ready to use!
6

Use in conversations

The MCP server’s capabilities are now available to AIExample:
What's the weather forecast for San Francisco this week?
AI will automatically use your weather MCP server.

Self-Hosted MCP Servers

Run MCP servers on your own infrastructure:
Run MCP server locally:
1

Install server

npm install -g @modelcontextprotocol/server-example
2

Start server

mcp-server start --port 3000
3

Expose with ngrok

ngrok http 3000
Copy the public URL
4

Add to ZeroTwo

Use the ngrok URL in ZeroTwo’s MCP server settings
Local servers stop when your computer sleeps. Use cloud hosting for production.

Creating Custom MCP Servers

Build your own MCP server from scratch.
1

Set up project

npm init -y
npm install @modelcontextprotocol/sdk express
2

Create server

server.js
const { MCPServer } = require('@modelcontextprotocol/sdk');
const express = require('express');

const app = express();
const server = new MCPServer({
  name: 'my-custom-server',
  version: '1.0.0'
});

// Define a custom tool
server.addTool({
  name: 'get-user-data',
  description: 'Fetch user data from internal database',
  parameters: {
    type: 'object',
    properties: {
      userId: {
        type: 'string',
        description: 'User ID to fetch'
      }
    },
    required: ['userId']
  },
  handler: async ({ userId }) => {
    // Your custom logic here
    const userData = await fetchFromDatabase(userId);
    return {
      success: true,
      data: userData
    };
  }
});

// Mount MCP server
app.use('/mcp', server.middleware());

app.listen(3000, () => {
  console.log('MCP server running on port 3000');
});
3

Add resources

// Provide access to resources
server.addResource({
  uri: 'db://users',
  name: 'User Database',
  description: 'Access to user records',
  mimeType: 'application/json',
  handler: async () => {
    const users = await getAllUsers();
    return JSON.stringify(users);
  }
});
4

Implement authentication

server.setAuthHandler(async (token) => {
  // Validate API key
  const isValid = await validateToken(token);
  return isValid;
});
5

Deploy and connect

Deploy your server and add it to ZeroTwo
See the MCP Server Documentation for complete implementation guides.

Custom API Tools

Create custom tools that call your APIs.

Simple API Tool

1

Define API endpoint

Your API endpoint that ZeroTwo will call:
POST https://api.yourcompany.com/zerotwo-tools
Request format:
{
  "tool": "get_inventory",
  "parameters": {
    "product_id": "12345"
  }
}
Response format:
{
  "success": true,
  "data": {
    "product": "Widget",
    "quantity": 150,
    "location": "Warehouse A"
  }
}
2

Add in ZeroTwo

Settings > Integrations > Custom Tools > + Add Custom Tool
3

Configure tool

Tool Configuration:
  • Name: get_inventory
  • Description: β€œCheck inventory levels for products”
  • API Endpoint: Your API URL
  • Method: POST
  • Authentication: Bearer token / API key
Parameters Schema:
{
  "type": "object",
  "properties": {
    "product_id": {
      "type": "string",
      "description": "Product SKU or ID"
    }
  },
  "required": ["product_id"]
}
4

Test tool

Use the test interface to verify:
Input: { "product_id": "12345" }
Expected: Successful inventory data retrieval
5

Use in conversation

AI can now use your custom tool:User: β€œCheck inventory for product 12345”AI: Uses get_inventory tool β†’ Returns inventory info

Advanced Tool Configuration

Headers:
{
  "Authorization": "Bearer ${API_KEY}",
  "Content-Type": "application/json",
  "X-Custom-Header": "value"
}
Query parameters:
{
  "format": "json",
  "version": "2"
}
Request transformation: Map ZeroTwo parameters to your API format.
Response mapping:
{
  "success": "$.status",
  "data": "$.result.data",
  "message": "$.result.message"
}
Error handling:
{
  "error_path": "$.error",
  "retry_on": [429, 503],
  "max_retries": 3
}
Data transformation: Transform API response to AI-friendly format.
Configure limits:
  • Requests per minute
  • Requests per hour
  • Burst allowance
  • Cooldown period
Example:
{
  "rate_limit": {
    "requests_per_minute": 60,
    "requests_per_hour": 1000,
    "burst": 10
  }
}
Cache responses:
  • TTL (time to live)
  • Cache key strategy
  • Invalidation rules
Example:
{
  "cache": {
    "enabled": true,
    "ttl": 300,
    "key": "product_${product_id}"
  }
}

Database Connections (Enterprise)

Connect directly to databases.
Supported databases:
  • PostgreSQL
  • MySQL
  • SQL Server
  • Oracle
  • SQLite
Configuration:
{
  "type": "postgresql",
  "host": "db.yourcompany.com",
  "port": 5432,
  "database": "production",
  "username": "readonly_user",
  "password": "${DB_PASSWORD}",
  "ssl": true
}
Safety features:
  • Read-only by default
  • Query allowlist
  • Row limits
  • Timeout controls
Always use read-only credentials and limit data access.

Extension Marketplace

Browse and install community extensions.

Finding Extensions

Extension sources:
  • ZeroTwo Extension Marketplace (built-in)
  • GitHub MCP Server Registry
  • NPM packages
  • Community forums
Categories:
  • πŸ“Š Data & Analytics
  • πŸ”§ Development Tools
  • 🀝 CRM & Sales
  • πŸ“ Productivity
  • 🎨 Creative Tools
  • πŸ” Security & Compliance

Installing from Marketplace

1

Browse marketplace

Settings > Integrations > Extension Marketplace
2

Search or browse

Find extensions by:
  • Category
  • Popularity
  • Recently added
  • Search term
3

View details

Click extension to see:
  • Description and capabilities
  • Required permissions
  • Reviews and ratings
  • Installation instructions
  • Pricing (if applicable)
4

Install

Click Install ExtensionReview and approve permissions
5

Configure

Set up API keys or connection details as needed
6

Activate

Enable the extension for your projects

Managing Extensions

Keep your extensions organized and secure.

Extension Settings

For each extension:
  • βœ… Enable/disable
  • βš™οΈ Configuration
  • πŸ” Permissions
  • πŸ“Š Usage statistics
  • πŸ”„ Update status
  • πŸ—‘οΈ Uninstall
Access: Settings > Integrations > Manage Extensions

Permissions Management

What extensions can access:
  • Conversation history
  • File uploads
  • API credentials
  • Project data
  • Personal information
Permission levels:
  • πŸ‘€ Read-only
  • ✏️ Read-write
  • πŸ” Sensitive data access
  • 🌐 Network access
Remove specific permissions without uninstalling:
  1. Open extension settings
  2. Click Permissions
  3. Toggle off unwanted permissions
  4. Extension functionality may be limited
Track extension activity:
  • API calls made
  • Data accessed
  • Errors encountered
  • Performance metrics
Access: Extension Settings > Activity Log

Updating Extensions

Auto-updates (default):
  • Extensions update automatically
  • Security patches applied immediately
  • Breaking changes delayed with notice
Manual updates:
  1. Settings > Extensions
  2. See β€œUpdate Available” badge
  3. Review changelog
  4. Click Update
Enable auto-updates for security patches, but review feature updates manually.

Best Practices

Protect your data:βœ… Do:
  • Use read-only database connections
  • Implement proper authentication
  • Review extension permissions regularly
  • Use environment variables for secrets
  • Audit extension activity logs
  • Keep extensions updated
❌ Don’t:
  • Grant unnecessary permissions
  • Hard-code API keys
  • Skip security reviews
  • Trust unverified extensions
  • Expose production databases without limits
Before deploying to production:
  1. Test in development environment
  2. Verify error handling
  3. Check rate limits
  4. Validate data transformations
  5. Test authentication failures
  6. Monitor performance
Use test projects for initial integration.
Track extension performance:
  • API call counts
  • Response times
  • Error rates
  • Cost (if applicable)
  • User feedback
Set alerts for unusual activity or errors.
Maintain documentation:
  • Purpose of each extension
  • Required setup steps
  • Known limitations
  • Troubleshooting guide
  • Contact for issues
Share with team members for smooth onboarding.

Troubleshooting

Common issues:
  1. Authentication failed
    • Verify API keys are correct
    • Check token hasn’t expired
    • Ensure proper permissions
  2. Connection timeout
    • Check server URL
    • Verify network access
    • Look for firewall blocks
  3. Invalid response
    • Check API endpoint is correct
    • Verify response format matches config
    • Look at error logs
Debug steps:
  • Test extension with simple request
  • Check extension activity log
  • Verify API directly (Postman/curl)
  • Contact extension developer
Resolve access issues:
  1. Check extension has required permissions
  2. Verify your account has necessary role
  3. Review organization policies
  4. Check if extension is approved
Request access: Contact organization admin if needed.
Troubleshoot MCP connection:
  1. Verify server is running
  2. Check URL/endpoint is correct
  3. Test authentication credentials
  4. Look for SSL/TLS issues
  5. Check server logs
Test connection: Use MCP inspector tool to debug.

Next Steps

Custom extensions unlock unlimited possibilities - connect ZeroTwo to any system or data source!