Skip to main content
Glama
matlock08

Watson Discovery MCP Server

by matlock08

MCP Watson Discovery Server

A Model Context Protocol (MCP) server that enables secure interaction with Watson Discovery. This server allows AI assistants to list projects, list collections in projects, execute queries through natural language process.

Features

  • List available projects

  • List available collections in project

  • Execute queries in NLP in a collection

Related MCP server: IBM watsonx.data MCP Server

Configuration

Set the following environment variables:

WATSONX_DISCOVERY_APIKEY=
WATSONX_DISCOVERY_URL=
WATSONX_DISCOVERY_VERSION=2023-03-31

Usage

With Claude Desktop

Add this to your claude_desktop_config.json:

{
	"mcpServers": {
		"watsonx-discovery": {
			"command": "wsl.exe",
			"args": [
				"bash",
				"-c",
				"/home/morpheus/.local/bin/uv --directory /home/morpheus/workspace/mcp-discovery run 'server/__main__.py'"
			]
		}
	}
}

As a standalone server

# Install dependencies
uv install 

# Run the server
uv run server/__main__.py

Development

# Clone the repository
git clone https://github.com/matlock08/watson_discovery_mcp.git
cd watson_discovery_mcp

# Create virtual environment
uv venv 
source venv/bin/activate  # or `venv\Scripts\activate` on Windows

# Install development dependencies
uv install

# Run 
uv run run server/__main__.py

env WATSONX_DISCOVERY_APIKEY= env WATSONX_DISCOVERY_URL= env WATSONX_DISCOVERY_VERSION=2023-03-31 uvx mcp-watson-discovery 

License

MIT License - see LICENSE file for details.

Available Tools

3 tools
get_projectsA

Watson Discovery Get Projects

Description

The Watson Discovery Get Projects tool provides access to IBM Watson Discovery's projects, allowing you to retrieve a list of all available projects in your Watson Discovery instance. This tool returns both the human-readable project names and their corresponding unique identifiers (UUIDs) for use in subsequent operations.

Function

This tool connects to your IBM Watson Discovery instance using your provided authentication credentials, queries the available projects, and returns structured information about each project.

Use Cases

  • Inventory management of Watson Discovery projects

  • Project selection for further operations, such as querying or collection management

  • Pre-processing step before performing operations on specific projects

  • Integration with automated workflows that require project UUIDs

Authentication

This tool requires valid IBM Cloud IAM API credentials to access your Watson Discovery instance. Ensure your service account has appropriate permissions to list projects.

Output Format

Results are returned as a structured array of project objects, each containing:

  • name: The project name (string)

  • project_id: The project's UUID (string in UUID format)

  • type: The type of project Possible values: [intelligent_document_processing,document_retrieval,conversational_search,content_mining,content_intelligence,other] (string)

  • collection_count: The number of collections configured in this project (integer)

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Without annotations, the description covers behavioral aspects like authentication needs and output structure. It explicitly states the function is to list projects, implying no destructive side effects, though it could state 'read-only' more directly.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with sections and front-loaded main purpose. It is slightly verbose but every section contributes useful context without excessive repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, the description fully explains the return structure (name, project_id, type, collection_count) and authentication. It is complete for a list operation with no parameters.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters and 100% schema coverage, so description adds value beyond schema by detailing output fields and authentication. Baseline of 4 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it retrieves a list of projects with human-readable names and UUIDs. It distinguishes from sibling tools like 'list_project_collections' and 'query_project' by focusing exclusively on projects.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description lists concrete use cases and mentions authentication requirements, implying when to use it (e.g., inventory, pre-processing). It doesn't explicitly contrast with alternatives, but the sibling tools are sufficiently different to avoid confusion.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_project_collectionsA

Watson Discovery List Project Collections

Description

The Watson Discovery List Project Collections return a lists of existing collections for the specified project and returns structured information about each collection

Function

This tool connects to your IBM Watson Discovery instance using your provided authentication credentials, listing the available collections of a project, and returns structured information about each collection.

Use Cases

  • Inventory management of Watson Discovery collections

  • Collection selection for further operations, such as querying

  • Pre-processing step before performing operations on specific projects and collections

  • Integration with automated workflows that require collection UUIDs

Authentication

This tool requires valid IBM Cloud IAM API credentials to access your Watson Discovery instance. Ensure your service account has appropriate permissions to list collections.

Output Format

Results are returned as a structured array of collections objects, each containing:

  • name: The collection name (string)

  • collection_id: The collection's UUID (string in UUID format)

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYes

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Describes behavior as reading collections and returning structured info. No annotations provided, so description carries full burden, but lacks details on pagination, errors, or performance. Adequate for a read list operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Well-structured with sections (Description, Function, Use Cases, Authentication, Output Format). Some redundancy ('return a lists' vs 'listing'), but overall efficient and front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers authentication, use cases, and output format details (name and collection_id). Missing error handling and pagination, but for a simple list tool this is reasonable.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0% – no parameter-level description. The description only implies project_id via 'specified project', adding minimal meaning beyond the schema's title. Fails to compensate for low coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states 'list existing collections for the specified project' – a specific verb+resource. Differentiates from siblings (get_projects lists projects, query_project queries data).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit use cases (inventory, selection, pre-processing) and mentions authentication requirements. Lacks explicit 'when not to use' or comparison to siblings, but context is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

query_projectA

Watson Discovery Query Project

Description

Search your data by submitting queries that are written in natural language for the specified project and collections. The query returns a list of documents that match the query criteria.

Function

This tool connects to your IBM Watson Discovery instance using your provided authentication credentials, listing the available documents of a project and collections, and returns structured information about each document.

Use Cases

  • Search and retrieve documents from a specific project and collection

  • Integration with automated workflows that require document retrieval

Authentication

This tool requires valid IBM Cloud IAM API credentials to access your Watson Discovery instance. Ensure your service account has appropriate permissions to query projects.

Output Format

Results are returned as a structured array of result objects, each containing:

  • document_id: The unique identifier of the document (string)

  • result_metadata: Metadata of a query result (object)

  • metadata: Metadata of the document (object)

  • document_passages: Passages from the document that best matches the query (object)

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYes
collection_idYes
natural_language_queryYes
countNo
filterNo

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It discloses authentication requirements (IBM Cloud IAM credentials) and output format (structured array with document_id, metadata, passages). It does not mention side effects, but as a read operation this is acceptable.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with distinct sections (Description, Function, Use Cases, Authentication, Output Format). All sentences are relevant and front-loaded with purpose. It is slightly verbose but not excessive.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 5 parameters, no output schema, and no sibling context issues, the description covers authentication and output format but lacks parameter details. Use cases are provided. It is partially complete but missing crucial per-parameter guidance.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description does not explain individual parameters like project_id, collection_id (type array), count, or filter. The mention of natural language queries only hints at the natural_language_query parameter. The description does not compensate for the lack of schema documentation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states that the tool searches data using natural language queries for a specified project and collections, returning matching documents. It also mentions connection to IBM Watson Discovery, distinguishing it from sibling tools like get_projects and list_project_collections which are for listing.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The 'Use Cases' section provides two clear examples (searching documents, integration with workflows). It does not explicitly state when not to use or name alternatives, but the sibling tools imply the scope is for document search within a project, providing good context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 3 tool updatesv0.1.10
    • First observedget_projects
    • First observedlist_project_collections
    • First observedquery_project

TDQS

A3.9/5.0

Scored across 3 tools

Disambiguation5/5

Each tool has a distinct purpose: get_projects lists projects, list_project_collections lists collections for a project, and query_project retrieves documents. There is no overlap or ambiguity.

Naming Consistency5/5

All tools use snake_case with a consistent verb_noun pattern (get_projects, list_project_collections, query_project). No mixing of styles.

Tool Count3/5

With only 3 tools, the server is quite minimal for a service like Watson Discovery, which typically involves many more operations. However, it provides a basic read-only workflow, so it is borderline acceptable.

Completeness2/5

The server only supports read operations (list projects, list collections, query). Missing create, update, delete for projects and collections, as well as document management features, leaving significant gaps for agents.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers