Skip to main content

MCP Server Connection Guide

Collate provides a Model Context Protocol (MCP) server that allows AI assistants and other clients to interact with your metadata catalog. The MCP server exposes tools for searching metadata, managing glossaries, and working with lineage data. Please check out our guides for Claude and Goose if you are using them as AI assistants.

Server Information

  • Server Name: openmetadata-mcp-stateless
  • Version: 0.11.2
  • Endpoint: {OMURL}/mcp
  • Protocol: Server-Sent Events (SSE) over HTTP
  • Authentication: JWT Bearer Token

Connection Setup

1. Server URL

Your MCP server is available at:
Replace {OMURL} with your Collate instance URL (e.g., https://your-openmetadata.com/mcp)

2. Authentication

The MCP server requires JWT authentication. Include your token in the Authorization header:

3. Content Type

All requests should use:

API Endpoints

Initialize Connection

Endpoint: POST {OMURL}/mcp Sample Request:
Sample Response:

List Available Tools

Endpoint: POST {OMURL}/mcp Sample Request:
Sample Response:

List Available Prompts

Endpoint: POST {OMURL}/mcp Sample Request:
Sample Response:

Call a Tool

Endpoint: POST {OMURL}/mcp Sample Request (Search Metadata):
Sample Response:

Get a Prompt

Endpoint: POST {OMURL}/mcp Sample Request:
Sample Response:

Error Handling

Protocol-Level Errors

Authentication Error

A request with a missing or invalid/expired bearer token fails at the transport level: the server responds with HTTP status 401 Unauthorized (plus a WWW-Authenticate header identifying the OAuth authorization server) and a plain error body, not a full JSON-RPC envelope:
The same message and code are used whether the token is missing, invalid, or expired. Check the HTTP status code first: a 401 response means your client must (re-)authenticate before retrying, rather than treating the call as a normal JSON-RPC tool error.

Invalid Tool Error

Validation Error

Tool Execution Errors

A tool that runs but fails (a bad argument, a missing entity, an authorization denial, or a backend fault) does not return a JSON-RPC protocol-level error object. Instead, the server returns a normal JSON-RPC success response whose result.isError field is true. The failure details are a JSON string inside result.content[0].text, and the same object is also available as result.structuredContent for clients that support it. Sample Response (entity not found):
Always check result.isError on a successful JSON-RPC response before assuming the tool call succeeded. A 200-shaped response isn’t proof the operation worked.

Best Practices

  1. Always authenticate: Include the JWT token in every request
  2. Handle errors gracefully: Check for error responses and handle them appropriately
  3. Use appropriate limits: Don’t request too many results at once to avoid performance issues
  4. Cache server capabilities: Store the results of the initialize call to avoid repeated requests
  5. Use specific entity types: When possible, specify entity_type to get more relevant results

Security Considerations

  • JWT tokens should be kept secure and not logged
  • Use HTTPS for all communications
  • Implement token refresh logic for long-running connections
  • Follow your organization’s security policies for API access
For more sample use cases with MCP please check out our blog!

Reach out on Slack!

With MCP, we are finding new ways to use Collate all the time! Now that you have Claude and Collate configured to work together, think you’ve got a great new use case? Show us what you’ve got in Slack!