blindata-mcp-server

blindata/blindata-mcp-server

3.2

If you are the rightful owner of blindata-mcp-server and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to dayong@mcphub.com.

The Blindata MCP Server is designed to expose Blindata APIs as consumable tools for external AI agents, enhancing their reliability and performance.

Blindata MCP Server

An MCP server that exposes APIs as consumable tools for external AI agents. This server enables agents to acquire essential domain knowledge directly from the enterprise information architecture managed by Blindata. Doing so enhances agent reliability and performance while preventing the creation of an ungoverned agentic mess.

Blindata MCP Server

Setup

If you are using uv run these commands:

uv venv
source .venv/bin/activate

Alternatively, if you are using pip run these commands:

python -m venv venv   # create a venv
source venv/bin/activate
pip install -r requirements.txt

Configuration

Create a conf/ directory with a conf.json file as follows:

{
    "blindata": {
        "blindata_token": "Bearer ...",
        "blindata_tenant": "<blindata tenant uuid>",
        "blindata_api": "https://demo.blindata.io/api/v1/"
    }
}

Test

You can test the server with the MCP Inspector running this command:

mcp dev server.py

Installation

Cloud Desktop

You can install the server in Claude Desktop and interact with it right away by running the following command:

mcp install mcp-server.py

Alternatively, you can add this to your claude_desktop_config.json and then restart Claude Desktop:

{
    "mcpServers": {
        "blindata-mcp-server": {
            "command": "wsl.exe",
            "args": [
                "bash",
                "-c",
                "<path to your bin>/bin/uv --directory <path to your project root directory> run mcp-server.py"
            ]
        }
    }
}

Chat with your enterprise information architecture

Now you can ask your MCP Client (ex. Cloude Desktop) whatever you want about your enterprise information architecture. Here is an example of a possible prompt...

The assistant's goal is to search for a specific data product and provide a clear description that can be used by the user to understand what data it exposes and how to consume it. The user has already specified the name of the product they're searching for, which is {name}.

## Search and Validation Process
1. Search for the exact product name first.
2. Validate that the product exists in the system before proceeding.
3. If the exact product isn't found, search for semantically similar names, acronyms, or abbreviations.
4. If multiple products match the search criteria, present them in a structured table with the following columns:

<output-format>
## Search results

| Result Number | Product Name | Description | Domain | Owner |
|------------- |-------------|-------------|--------|-------|
| [result 1] || [Product 1] | [Short description] | [Domain] | [Owner if available] |
</output-format>

Note: Always use the product's displayName in place of the product name in the text shown to the user

5. Once the user selects the product, they want to provide a detailed description of it in the following form

<output-format>
## [Product Name]
[Detailed Description]

### Other Information
- **Domain**: [Domain]
- **Status**: [Current Status]
- **Owner**: [Owner Information]

### Output Ports

Present all output ports (just output ports, not other types of ports) in a table format:

| Port Number | Port Name | Type |System | Schema | Entities |
|-----------|-----------|-----------|-----------|-----------|-----------|
| [Port Number] | [Port Name] | [Type] |[System] | [Schema] | [Entity 1, Entity 2, ...] |
</output-format>

6. Ask the user which port they want to investigate. If there is only one port, investigate it by default. The result of the investigation should show the port's details in the following form: 

<output-format>
### [Entity 1] 
[description]

| Field Number | Field Name | Field Type | Field Description | Field Attributes |
|-----------|-----------|-----------|-----------|-----------|
| [Field Number] | [Field Name] | [Field Type] | [Field Description] | [Field Attributes] |
</output-format>

7. List 3-5 potential ways to analyze the physical entities exposed by the selected port in the following format:
<output-format>
1. **[Analysis name 1]** : [Analysis 1 Description]
2. **[Analysis name 2]** : [Analysis 2 Description]
3. **[Analysis name 3]** : [Analysis 3 Description]
</output-format>

8. Ask if the user needs SQL queries for any of these analyses

9. Propose some possible visualizations for the results returned by the generated query and ask the user to select one

10 Create a Streamlit report of the selected visualization. Use the query generated to get the data from the source database. If you need some information to complete the report, like connection parameters,  ask to the user

Note: If at any point the data product cannot be found or information is incomplete, clearly communicate this to the user with specific details about what information is missing.

Troubleshooting

Having the MCP Explorer open in multiple browser tabs can generate connection problems between the server and the Explorer.