.do
Mcp

Businesses MCP

Model Context Protocol reference for businesses.do - Business directory and management

Businesses MCP

Business directory and management

Overview

The Model Context Protocol (MCP) provides AI models with direct access to businesses.do through a standardized interface.

Installation

pnpm add @modelcontextprotocol/sdk

Configuration

Add to your MCP server configuration:

{
  "mcpServers": {
    "businesses": {
      "command": "npx",
      "args": ["-y", "@dotdo/mcp-server"],
      "env": {
        "DO_API_KEY": "your-api-key"
      }
    }
  }
}

Tools

businesses/invoke

Main tool for businesses.do operations.

{
  "name": "businesses/invoke",
  "description": "Business directory and management",
  "inputSchema": {
    "type": "object",
    "properties": {
      "operation": {
        "type": "string",
        "description": "Operation to perform"
      },
      "parameters": {
        "type": "object",
        "description": "Operation parameters"
      }
    },
    "required": ["operation"]
  }
}

Usage in AI Models

Claude Desktop

// ~/Library/Application Support/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "businesses": {
      "command": "npx",
      "args": ["-y", "@dotdo/mcp-server", "--tool=businesses"],
      "env": {
        "DO_API_KEY": "undefined"
      }
    }
  }
}

OpenAI GPTs

# Custom GPT configuration
tools:
  - type: mcp
    server: businesses
    operations:
      - invoke
      - query
      - execute

Custom Integration

import { Client } from '@modelcontextprotocol/sdk/client/index.js'
import { StdioClientTransport } from '@modelcontextprotocol/sdk/client/stdio.js'

const transport = new StdioClientTransport({
  command: 'npx',
  args: ['-y', '@dotdo/mcp-server', '--tool=businesses'],
})

const client = new Client(
  {
    name: 'businesses-client',
    version: '1.0.0',
  },
  {
    capabilities: {},
  }
)

await client.connect(transport)

// Call tool
const result = await client.callTool({
  name: 'businesses/invoke',
  arguments: {
    operation: 'businesses',
    parameters: {},
  },
})

Tool Definitions

Available Tools

{
  "tools": [
    {
      "name": "businesses/invoke",
      "description": "Invoke businesses.do",
      "inputSchema": {
        /* ... */
      }
    },
    {
      "name": "businesses/query",
      "description": "Query businesses.do resources",
      "inputSchema": {
        /* ... */
      }
    },
    {
      "name": "businesses/status",
      "description": "Check businesses.do status",
      "inputSchema": {
        /* ... */
      }
    }
  ]
}

Resources

Available Resources

{
  "resources": [
    {
      "uri": "businesses://config",
      "name": "Businesses Configuration",
      "mimeType": "application/json"
    },
    {
      "uri": "businesses://docs",
      "name": "Businesses Documentation",
      "mimeType": "text/markdown"
    }
  ]
}

Prompts

Pre-configured Prompts

{
  "prompts": [
    {
      "name": "businesses-quick-start",
      "description": "Quick start guide for businesses.do",
      "arguments": []
    },
    {
      "name": "businesses-best-practices",
      "description": "Best practices for businesses.do",
      "arguments": []
    }
  ]
}

Examples

Basic Usage

// AI model calls tool via MCP
mcp call businesses/manage

With Parameters

// Call with parameters
await mcp.callTool('businesses/invoke', {
  operation: 'process',
  parameters: {
    // Operation-specific parameters
  },
  options: {
    timeout: 30000,
  },
})

Error Handling

try {
  const result = await mcp.callTool('businesses/invoke', {
    operation: 'process',
  })
  return result
} catch (error) {
  if (error.code === 'TOOL_NOT_FOUND') {
    console.error('Businesses tool not available')
  } else {
    throw error
  }
}

AI Integration Patterns

Agentic Workflows

// AI agent uses businesses.do in workflow
const workflow = {
  steps: [
    {
      tool: 'businesses/invoke',
      operation: 'analyze',
      input: 'user-data',
    },
    {
      tool: 'businesses/process',
      operation: 'transform',
      input: 'analysis-result',
    },
  ],
}

Chain of Thought

AI models can reason about businesses.do operations:

User: "I need to process this data"

AI: "I'll use the businesses tool to:
1. Validate the data format
2. Process it through businesses.do
3. Return the results

Let me start..."

[Calls: mcp call businesses/manage]

Server Implementation

Custom MCP Server

import { Server } from '@modelcontextprotocol/sdk/server/index.js'
import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js'

const server = new Server(
  {
    name: 'businesses-server',
    version: '1.0.0',
  },
  {
    capabilities: {
      tools: {},
      resources: {},
      prompts: {},
    },
  }
)

// Register tool
server.setRequestHandler('tools/call', async (request) => {
  if (request.params.name === 'businesses/invoke') {
    // Handle businesses.do operation
    return {
      content: [
        {
          type: 'text',
          text: JSON.stringify(result),
        },
      ],
    }
  }
})

const transport = new StdioServerTransport()
await server.connect(transport)

Best Practices

  1. Tool Design - Keep tools focused and single-purpose
  2. Error Messages - Provide clear, actionable errors
  3. Documentation - Include examples in tool descriptions
  4. Rate Limiting - Implement appropriate limits
  5. Security - Validate all inputs from AI models
  6. Monitoring - Track tool usage and errors