bizSupply MCP Server

Connect your AI assistant (Claude Desktop, Cursor, Claude Code) to bizSupply using the Model Context Protocol (MCP).

Last updated: 2026-07-21

Connect your AI assistant (Claude Desktop, Cursor, Claude Code) to bizSupply using the Model Context Protocol (MCP).


What is MCP?

The Model Context Protocol (MCP) is an open standard that lets AI assistants interact directly with external tools and data sources. bizSupply runs a hosted HTTP MCP server that exposes your workspace as a set of tools your assistant can call in conversation. There is nothing to install and run locally — you point your client at the hosted endpoint and authenticate with an API key.

Once connected, your AI can:

  • Manage documents — list, search, view content and extracted data.
  • Develop plugins — validate, create, update, and test plugins.
  • Execute pipelines — run document processing workflows.
  • Monitor jobs — track execution status and results.
  • Manage ontologies — define extraction schemas.
  • Work with prompts — create and manage LLM prompt templates.

The assistant calls the bizSupply API on your behalf through the MCP tool interface, and everything stays scoped to your active organization.

ℹ️Note

In-product use case. bizSupply's own support assistant ("bizAssistant") uses MCP internally — when you ask it "show me my recent documents" or "why did my last job fail?", it calls the same list_documents, get_job_status, and list_sources tools documented below through an HTTP MCP client that forwards your session token. Same protocol, same auth boundary, same tenant scoping — just plumbed from inside the product rather than from an external client like Claude Desktop.


Quick Start

1. Get an API Key

Create an API key via the API (or ask your bizSupply administrator to provision one):

bash
curl -X POST "https://api.bizsupply.ai/api/v1/api-keys" \
  -H "Authorization: Bearer <your-jwt-token>" \
  -H "Content-Type: application/json" \
  -d '{"name": "my-ai-assistant"}'

The response contains your API key (shown only once):

json
{
  "api_key": "bsp_K7xH2mN9pQ4wR6tY8uI1oL3jK5nB7vC9...",
  "name": "my-ai-assistant",
  "created_at": "2024-01-15T10: 30: 00Z"
}
⚠️Warning

Store the key somewhere safe — it is shown only once. If you lose it, revoke it and create a new one.

2. Connect Your AI Client

Claude Code

bash
claude mcp add --scope user --transport http bizsupply \
  https://api.bizsupply.ai/mcp \
  --header "X-API-Key: bsp_<your-api-key>"

Claude Desktop

Add to your Claude Desktop configuration file:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json Windows: %APPDATA%\Claude\claude_desktop_config.json

json
{
  "mcpServers": {
    "bizsupply": {
      "transport": "http",
      "url": "https://api.bizsupply.ai/mcp",
      "headers": {
        "X-API-Key": "bsp_<your-api-key>"
      }
    }
  }
}

Cursor

Add to your Cursor MCP settings:

json
{
  "mcp": {
    "servers": {
      "bizsupply": {
        "transport": "http",
        "url": "https://api.bizsupply.ai/mcp",
        "headers": {
          "X-API-Key": "bsp_<your-api-key>"
        }
      }
    }
  }
}

3. Verify the Connection

Ask your AI assistant:

ℹ️Note

"Use the bizsupply ping tool to check the connection."

You should see a successful response confirming the connection.


Available Tools

Each tool maps to one or more bizSupply API endpoints. All tools are scoped to your active organization.

Public

ToolDescription
pingCheck server connectivity.
server_infoGet server version and list available tools.

Document Operations

ToolDescription
list_documentsList your documents with pagination.
list_documents_filteredAdvanced filtering by labels, source, and dates.
get_documentGet document details by ID.
get_document_contentGet parsed text content.
get_document_extracted_dataGet extracted structured data.
get_document_relationshipsGet linked / related documents.
download_documentDownload the original file (see size-limit note below).
search_documentsSearch by filename or content.
get_document_statsStatistics by source / labels.
ℹ️Note

download_document size limit (format=base64). The inline-bytes path is bounded by the platform's configured maximum file size (the same ceiling enforced by the parsing / LLM pipeline). Files above the cap return a BLOB_TOO_LARGE (HTTP 400) error instead of overwhelming the processing engine. Use format=url to obtain a signed URL for arbitrarily large files — the URL path is not affected by this cap.

Plugin Development

ToolDescription
validate_pluginValidate code before registration.
list_pluginsList available plugins.
get_pluginGet plugin details.
get_plugin_codeGet plugin source code.
create_pluginRegister a new plugin.
update_pluginUpdate plugin code.
delete_pluginRemove a plugin.

Pipeline Management

ToolDescription
list_pipelinesList configured pipelines.
get_pipelineGet pipeline configuration.
create_pipelineCreate a pipeline from plugins.
execute_pipelineStart a pipeline execution.
delete_pipelineRemove a pipeline.

Job Monitoring

ToolDescription
list_jobsList jobs with status filters.
get_job_statusGet detailed job status.
cancel_jobCancel a running job.
get_last_syncGet the last sync timestamp.

Ontology Management

ToolDescription
list_ontologiesList ontologies.
get_ontologyGet an ontology with its hierarchy.
get_ontology_fieldsGet fields for specific labels.
create_ontologyCreate an ontology from YAML.
update_ontologyUpdate an ontology taxonomy.
delete_ontologyRemove an ontology.
list_pending_reviewsList ontology reviews awaiting approval (platform administrators).
approve_reviewApprove and persist an ontology (platform administrators).
reject_reviewReject an ontology review with a reason (platform administrators).

Prompt Templates

ToolDescription
list_promptsList prompt templates.
get_promptGet a prompt with its content.
create_promptCreate a new prompt template.
update_promptUpdate prompt content.
delete_promptRemove a prompt.

Source Management

ToolDescription
list_sourcesList connected sources.
get_source_detailsGet full source information.
get_source_stateGet plugin execution state.
update_auto_syncConfigure auto-sync settings.

Benchmark & Analytics

ToolDescription
list_benchmarksList available benchmarks.
get_document_scoreGet a document quality score.
get_actions_requiredList documents needing attention.
get_contract_renewalsList upcoming contract renewals.

Role Guards and Permissions

Write Operations Require ADMIN or OWNER Role

All destructive MCP tools (create, update, delete) require the authenticated user to have the ADMIN or OWNER role in their active organization. Read-only tools (list, get, search) are available to all roles.

DomainRead tools (all roles)Write tools (ADMIN / OWNER)
Pluginslist_plugins, get_plugin, get_plugin_code, validate_plugincreate_plugin, update_plugin, delete_plugin
Pipelineslist_pipelines, get_pipelinecreate_pipeline, execute_pipeline, delete_pipeline
Ontologieslist_ontologies, get_ontology, get_ontology_fieldscreate_ontology, update_ontology, delete_ontology
Promptslist_prompts, get_promptcreate_prompt, update_prompt, delete_prompt
Sourceslist_sources, get_source_details, get_source_stateupdate_auto_sync

If a user without the required role attempts a write operation, the tool returns: "Insufficient permissions. OWNER or ADMIN role required."

Platform Administrator Tools

The ontology review tools are restricted to platform administrators:

ToolDescriptionAccess
list_pending_reviewsList ontology reviews awaiting approval.Platform administrators only
approve_reviewApprove and persist an ontology.Platform administrators only
reject_reviewReject with a reason.Platform administrators only

stdio Transport (for clients without native HTTP support)

For clients that do not support HTTP transport natively, use mcp-remote to bridge stdio to HTTP:

json
{
  "mcpServers": {
    "bizsupply": {
      "command": "npx",
      "args": [
        "mcp-remote",
        "https://api.bizsupply.ai/mcp",
        "--header",
        "X-API-Key: bsp_<your-api-key>"
      ]
    }
  }
}

The mcp-remote package translates stdio to HTTP, allowing any MCP client to connect to the bizSupply server.


Plugin Development Workflow

The MCP integration is especially powerful for plugin development. The recommended workflow is validate → fix → register → test.

Step 1: Check the plugin interface

Ask your AI:

ℹ️Note

"What are the requirements for a bizSupply classification plugin?"

The AI can reference the Plugin Interface documentation.

Step 2: Write the plugin code

Work with your AI to write the plugin. The assistant has access to plugin templates, the available service methods, and best practices.

Step 3: Validate before registration

Always validate first to catch errors early:

ℹ️Note

"Use validate_plugin to check this classification plugin code: [your code]"

Validation returns detailed feedback, including the offending line and a fix suggestion:

json
{
  "valid": false,
  "errors": [{
    "error_type": "method_not_async",
    "message": "Method 'classify' must be async",
    "severity": "error",
    "hint": "Change 'def classify' to 'async def classify'",
    "line": 5
  }]
}

Step 4: Fix and re-validate

The AI can interpret the error and help you fix it:

ℹ️Note

"Fix the async issue and validate again."

Step 5: Register the plugin

Once validation passes:

ℹ️Note

"Create the plugin with this code."

The plugin then enters the platform's human-review gate before it can run.

Step 6: Test in a pipeline

ℹ️Note

"Create a pipeline with my new plugin and execute it on my documents."


Example Conversations

Once configured, you interact with bizSupply through natural language. A few examples:

List my documents

ℹ️Note

"Show me my recent documents from Gmail."

The assistant uses list_documents_filtered with the appropriate filters and presents the results in a formatted table.

Search for contracts

ℹ️Note

"Find all documents labeled 'contract' that mention 'renewal'."

The assistant uses search_documents with label and content filters.

Create a classification plugin

ℹ️Note

"Help me create a plugin that classifies documents as invoices, contracts, or receipts based on their content."

The assistant references the plugin interface, helps write the code, validates it with validate_plugin, and registers it with create_plugin.

Monitor processing

ℹ️Note

"What's the status of my last pipeline execution?"

The assistant uses list_jobs and get_job_status to report the status, progress counts, and any errors.


Authentication

API Key Authentication

API keys authenticate requests through the platform's API gateway. Two header formats are accepted:

Dedicated header (preferred):

X-API-Key: bsp_<your-api-key>

Bearer token (for clients that only support Authorization headers):

Authorization: Bearer bsp_<your-api-key>

The bsp_ prefix lets the gateway distinguish API keys from JWT tokens. When Authorization: Bearer bsp_... is detected, the request is routed through the API-key path instead of JWT validation.

API Key Format

bizSupply API keys have the format:

bsp_<opaque-key>

Example: bsp_K7xH2mN9pQ4wR6tY8uI1oL3jK5nB7vC9dE0fG1hI2jK3lM4n

Managing API Keys

Create and manage keys via the platform API (requires JWT authentication):

bash
="color:#5c6370;font-style:italic"># Create a key (plaintext returned only once)
curl -X POST "https://api.bizsupply.ai/api/v1/api-keys" \
  -H "Authorization: Bearer <your-jwt-token>" \
  -H "Content-Type: application/json" \
  -d '{"name": "my-ai-assistant"}'

="color:#5c6370;font-style:italic"># List keys (metadata only, no plaintext)
curl "https://api.bizsupply.ai/api/v1/api-keys" \
  -H "Authorization: Bearer <your-jwt-token>"

="color:#5c6370;font-style:italic"># Revoke a key (cannot be undone)
curl -X DELETE "https://api.bizsupply.ai/api/v1/api-keys/<key-id>" \
  -H "Authorization: Bearer <your-jwt-token>"

Security Best Practices

  1. Never share your API key in public repositories or chat logs.
  2. Rotate keys periodically — create new keys and revoke old ones.
  3. Use descriptive names — name keys by purpose (e.g., "claude-desktop-home").
  4. Revoke unused keys — remove keys you no longer need.

Key Permissions

API keys inherit the permissions of the user who created them:

  • Access to the user's documents.
  • Access to the user's plugins (user scope) and the organization's plugins (tenant scope).
  • Read-only access to global plugins.
  • Write operations still require the ADMIN or OWNER role (same as JWT auth).

Troubleshooting

Connection failed

Symptom: the AI reports it cannot connect to bizSupply.

  1. Verify the API key is correct (no extra spaces).
  2. Check the URL is https://api.bizsupply.ai/mcp.
  3. Ensure the API key hasn't been revoked.

Authentication error

Symptom: tools return "unauthorized" or "invalid API key".

  1. Create a new API key.
  2. Update your AI client configuration.
  3. Restart your AI client.

Tool not found

Symptom: the AI says a tool doesn't exist.

  1. Verify the MCP connection with ping.
  2. Use server_info to list available tools.
  3. Check the tool-name spelling (tools use snake_case).

Validation errors

Symptom: plugin validation fails.

  1. Read the error message carefully — it includes fix suggestions.
  2. Check the Plugin Interface specification.
  3. Ensure all required methods are async.
  4. Verify the base-class inheritance.

Security Considerations

The MCP server is hosted by bizSupply and reached over HTTPS using your API key. Keep the following in mind:

  • Your API key is stored in your MCP client's configuration file. Ensure that file has appropriate file-system permissions.
  • All communication uses HTTPS; there is no insecure HTTP option.
  • The MCP server inherits the permissions of the API key you connect with. Use a key with the minimum access required for your workflow.
  • Credential secrets are never returned through MCP tools — only credential names and types are visible.

Next Steps


Support

For MCP integration issues:

  • Check this documentation first.
  • Contact your bizSupply administrator.
  • Email support@bizsupply.ai.