ibm-watsonx-gov-catalog-mcp-server 1.0.0
An IBM watsonx.governance mcp server that connects AI agents with marketplace of tools available on governance catalog 
License: Apache-2.0
Requires Python: >=3.11

# ibm-watsonx-gov-catalog-mcp-server
The **ibm-watsonx-gov-catalog-mcp-server** is a Model Context Protocol (MCP)-compliant server that seamlessly connects AI agents with tools hosted on [watsonx governed agentic catalog](https://www.ibm.com/docs/en/watsonx/saas?topic=ai-governed-agentic-catalog). 

---

## Overview

- **Protocol**: Model Context Protocol (MCP)  
- **Purpose**: Acts as a bridge between agentic AI frameworks and tools on governance catalog  
- **Supported Environments**: Watsonx SaaS  (Envs Supported : Sydney , Toronto)
- **Agent Compatibility**: The agentic framework must support the MCP standard (via Stdio).  
  _Note: This server will not function with agents that do not support MCP._

---

## Prerequisites

- Python version **3.11** or later  
- Access to your **SaaS environment**  
- Ensure your **Agent framework supports MCP protocol**

---

---

## Setup

### Step 1: Install Python

- Official Installer: [https://www.python.org/downloads/](https://www.python.org/downloads/)

### Step 2: Create a virtual environment

```bash
python -m venv .venv
```
---

## Running the Server

```bash
uv run ibm-watsonx-gov-catalog-mcp-server
```
### Step 3: Activate the virtual environment

```bash
source .venv/bin/activate  # macOS/Linux
.venv\Scripts\activate     # Windows
```

### Step 4: Install the `uv` package manager

```bash
pip install uv
```

- `uv` package: [https://pypi.org/project/uv/](https://pypi.org/project/uv/)

---

---

### Build the wheel file

```bash
uv pip install build
uv run python -m build 
```

### Build and Run the server

```bash
uv run ibm-watsonx-gov-catalog-mcp-server
```

---
## Testing using MCP Inspector

### Set the following environment variables

### For Watsonx SaaS

If you have not already, provision an instance of IBM WatsonX  Governance instance using the  link in the [Cloud catalog](https://cloud.ibm.com/catalog#highlights) . 

```
export WATSONX_APIKEY=<API KEY>
export WATSONX_REGION=<WATSONX_REGION>
```

NOTE: 
* For **WATSONX_APIKEY:** This is required for IBM watsonx.governance capabilities. Your Cloud API key can be generated by going to the [**Users** section of the Cloud console](https://cloud.ibm.com/iam#/users). From that page, click your name, scroll down to the **API Keys** section, and click **Create an IBM Cloud API key**. Give your key a name and click **Create**, then copy the created key and paste it below.

* For **WATSONX_REGION:** Set if you are using IBM watsonx.governance as a service in a regional data center other than default **Dallas (us-south), in Texas US**. Supported region values are "us-south", "eu-de", "au-syd", "ca-tor", "jp-tok".


### Invoke MCP inspector
```
npx @modelcontextprotocol/inspector uv run ibm-watsonx-gov-catalog-mcp-server -e WATSONX_APIKEY=<WASONX_APIKEY> -e WATSONX_REGION=<WATSONX_REGION>
```


## Limitations

- Environment credentials **cannot be changed during runtime**.
  - To change credentials, either:
    - Start a new server with new env variables
- Transport types supported : `stdio`
- Tool call is supported  : OOTB tools , Tools created using custom code .