Skip to main content
Glama
abhchoug

CHIM MCP Server

by abhchoug

CHIM MCP Server

A Model Context Protocol server that exposes CHIM change-management workflows (changes, outages, retros, and change freeze status) as MCP tools. Register this server with VS Code Copilot, Claude Desktop, or any MCP-compatible agent to query or update CHIM directly from your AI assistant.

🚀 Quick Start

See INSTALL.md for complete installation instructions covering:

  • ✅ VS Code + GitHub Copilot

  • ✅ Claude Desktop

  • ✅ Standalone command line

  • ✅ Configuration options

Quick setup (30 seconds):

# 1. Clone and build
git clone https://github.com/abhchoug/chim-mcp.git
cd chim-mcp
npm install && npm run build

# 2. Add full path to your MCP config
# VS Code: ~/Library/Application Support/Code/User/mcp.json
# Claude: ~/Library/Application Support/Claude/claude_desktop_config.json
# (see INSTALL.md for exact configuration)

# 3. Set API key
export CHIM_API_KEY=your-key
# OR create ~/.config/chim-mcp/config.json with {"apiKey": "your-key"}

# 4. Reload VS Code or restart Claude Desktop

# 5. Try: "List my CHIM changes" ✨

Related MCP server: freshservice-mcp

Prerequisites

  • Node.js 18+ (the server relies on the global fetch implementation)

  • A CHIM API key - generate one in the CHIM UI following the API key guide

Configuration

Variable

Default

Description

CHIM_API_KEY

(required)

API key sent as Authorization: Api-Key ….

CHIM_API_BASE_URL

https://api.chim.umbrella.com

Base URL for the CHIM API (set to https://api.stage.chim.umbrella.com for stage).

CHIM_API_USER_AGENT

chim-mcp/0.1.0

Overrides the User-Agent header if you need to identify your automation.

You can also store configuration in ~/.config/chim-mcp/config.json:

{
  "apiKey": "your-key",
  "baseUrl": "https://api.chim.umbrella.com",
  "userAgent": "chim-mcp/0.1.0"
}

Environment variables take precedence over the user-level config file.

Development

git clone https://github.com/cisco-sbg/chim-mcp.git
cd chim-mcp
npm install

# Run in development mode (TypeScript directly)
npm run dev

# Build and run production
npm run build
npm start

Available tools

Tool

Endpoint

Purpose

chim_save_api_key

local

Stores the API key and optional overrides in ~/.config/chim-mcp/config.json.

chim_get_change_freeze_status

GET /api/status/

Returns the global and per-suite change-freeze status documented in api_status.md.

chim_list_changes

GET /api/v1/changes/

Lists change notifications (supports page, page_size, and search query params).

chim_create_change

POST /api/v1/changes/

Creates a change notification. Pass the request body defined in guide.md inside the payload argument.

chim_list_outages

GET /api/v1/outages/

Lists incidents/outages (same pagination parameters as /changes/).

chim_create_outage

POST /api/v1/outages/

Creates an outage notification using the payload described in the guide.

chim_list_retros

GET /api/v1/retros/

Lists retrospective reports for completed incidents/changes.

The create tools accept either:

  • payload as a raw JSON string, or

  • payload as a structured object (when the calling agent supports complex tool arguments).

Set dry_run: true to have the server validate/echo the payload without sending it to CHIM—handy while drafting.

Testing

Unit Tests

Run the test suite with:

npm test              # Run tests once
npm run test:watch    # Run tests in watch mode
npm run test:coverage # Run tests with coverage report

Manual Testing with JSON-RPC

You can test the server manually by piping JSON-RPC messages:

# List tools
echo '{"jsonrpc":"2.0","id":1,"method":"tools/list"}' | npm run dev

# Call a tool (e.g., list changes with search)
echo '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"chim_list_changes","arguments":{"search":"your-username"}}}' | npm run dev

Extending the interface

  1. Review the upstream docs and schema links inside docs/cloudsec/docs/CHIM/api/**. The OpenAPI description is linked in overview.md.

  2. Add a helper in src/server.ts that calls the desired CHIM endpoint using the shared ChimClient.

  3. Register a new tool with a zod schema to keep inputs validated.

  4. Re-run npm run build so the emitted JS in dist/ stays in sync.

The project keeps the MCP implementation small and framework-free, so adding additional CHIM endpoints (pagerduty helpers, key management, etc.) only requires a few lines per tool.

Publishing

To publish a new version:

npm version patch  # or minor/major
npm publish --access public

License

MIT

Available Tools

7 tools
chim_create_changeB

Creates a Change notification (POST /api/v1/changes/). Provide the payload documented in the CHIM API guide.

ParametersJSON Schema
NameRequiredDescriptionDefault
dry_runNoSkip sending the request and only validate that the payload is valid JSON.
payloadYesPayload you want to send to CHIM.

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations, the description bears full responsibility for disclosing behavioral traits. It only reveals that the tool performs a POST to create a resource, which implies a write operation, but it omits details about auth requirements, side effects, error behavior, or response format. This is insufficient for a mutation tool.

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

Conciseness5/5

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

The description is a single, front-loaded sentence: 'Creates a Change notification (POST /api/v1/changes/).' It contains no redundant words and every clause earns its place, providing the essential action and endpoint.

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

Completeness2/5

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

The tool has no output schema and lacks annotations, yet the description does not explain expected return values, success/failure conditions, or the actual content of the payload beyond referencing an external guide. This leaves gaps for an agent, especially given the existence of similar create tools like chim_create_outage.

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

Parameters3/5

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

Schema description coverage is 100%, with both parameters (payload and dry_run) documented in the schema. The description adds a reference to the 'CHIM API guide' but does not elaborate on payload structure beyond what the schema states. Baseline 3 is appropriate since the schema already covers parameter semantics.

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 the tool's function with a specific verb and resource: 'Creates a Change notification (POST /api/v1/changes/)'. This distinguishes it from sibling tools like chim_list_changes (list) and chim_create_outage (outage), making the purpose unambiguous.

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

Usage Guidelines2/5

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

The description provides only invocation guidance ('Provide the payload documented in the CHIM API guide') but does not state when to use this tool versus alternatives. There is no mention of exclusions, prerequisites, or comparisons to sibling tools, so the agent receives no usage context.

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

chim_create_outageA

Creates an Incident/Outage notification (POST /api/v1/outages/). Provide the payload documented in the CHIM API guide.

ParametersJSON Schema
NameRequiredDescriptionDefault
dry_runNoSkip sending the request and only validate that the payload is valid JSON.
payloadYesPayload you want to send to CHIM.

TDQS

A3.9/5.0
Behavior2/5

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

No annotations are provided, so the description must disclose behavioral traits. It only reveals that it sends a POST request to create a notification, but omits side effects, authorization requirements, or reversibility. For a mutation tool, this is insufficient behavioral transparency.

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

Conciseness5/5

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

Two concise sentences pack the essential information: the action, the endpoint, and a pointer to detailed payload guidelines. No wasted words.

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?

The description is adequate for a simple create operation but lacks details on response format, error handling, or prerequisites. Since there is no output schema and no annotations, the description could do more to inform the agent about expected outcomes.

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 input schema already documents both parameters (dry_run and payload) with 100% coverage. The description adds value by referencing the CHIM API guide for payload structure, which is helpful beyond the generic schema descriptions.

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 the tool creates an Incident/Outage notification via a specific HTTP POST endpoint. This distinguishes it from sibling tools like chim_list_outages and chim_list_changes, which are read-only list operations.

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 clear context that the tool is for creating outage notifications and instructs to supply a payload from the CHIM API guide. It does not explicitly list alternative tools or when-not-to-use scenarios, but the purpose is unambiguous.

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

chim_get_change_freeze_statusA

Returns the change-freeze status for CHIM and each product suite (GET /api/status/).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior3/5

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

The description discloses the HTTP method (GET) and endpoint, which is useful behavioral context, but it does not provide additional details about response format, authentication, rate limits, or effects beyond the fact that it returns status. With no annotations provided, there is room for more explicit disclosure of its non-destructive nature.

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

Conciseness5/5

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

The description is a single, efficient sentence that includes the endpoint, with no extraneous information. Every word contributes to the tool's functionality.

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?

Given the tool's simplicity (no params, no output schema, no annotations), the description provides adequate context by identifying what the status covers and how to access it. It could elaborate on the response structure, but this is minor for a status retrieval tool.

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, so the description does not need to explain parameter semantics. The baseline of 4 applies because there are no parameters to document.

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 uses a specific verb ('Returns') with a clear resource ('change-freeze status for CHIM and each product suite') and includes the exact endpoint, making the tool's function unambiguous and distinct from sibling tools that list changes or outages.

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

Usage Guidelines3/5

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

The description implies usage when the change-freeze status is needed, but it does not explicitly state when to choose this tool over alternatives or mention any conditions, exclusions, or relationships to sibling tools.

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

chim_list_changesA

Lists change notifications (GET /api/v1/changes/). Supports pagination query params.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number to fetch (1-based).
searchNoSearch keyword supported by the CHIM API.
page_sizeNoNumber of records to fetch per page (1-100).

TDQS

A3.8/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It adds the HTTP method and endpoint and notes pagination support, but does not disclose other traits such as whether results are ordered, what data is returned, or any rate limits. The verb 'Lists' implies a read-only operation, but no explicit safety or side-effect information is given.

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

Conciseness5/5

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

The description is two short sentences, immediately stating the tool's core purpose and the key capability (pagination). No wasted words, and the information is 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?

For a simple list operation with a clear endpoint and fully described parameters, the description is mostly sufficient. It does not describe the return format, but as a list tool with no output schema, this gap is acceptable. The lack of annotations is mitigated by the read-only implication of 'Lists.'

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

Parameters3/5

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

Schema coverage is 100% with descriptions for all three parameters (page, search, page_size). The description only adds 'Supports pagination query params,' which duplicates the schema's pagination-related parameter descriptions and does not enhance understanding of search or page_size semantics beyond what the schema already provides.

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 the tool's function: 'Lists change notifications' with a specific endpoint (GET /api/v1/changes/). This distinguishes it from sibling tools like chim_list_outages and chim_list_retros by resource type, and from chim_create_change by verb (list vs. create).

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

Usage Guidelines3/5

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

The description implies usage when you need to list change notifications, and the endpoint and pagination support hint at querying. However, it does not explicitly state when to use this over alternatives, nor does it identify any exclusions or prerequisites. It relies on the tool's name and obvious resource distinction.

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

chim_list_outagesA

Lists incident/outage notifications (GET /api/v1/outages/). Supports pagination query params.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number to fetch (1-based).
searchNoSearch keyword supported by the CHIM API.
page_sizeNoNumber of records to fetch per page (1-100).

TDQS

A3.8/5.0
Behavior3/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 that the tool is a read operation via 'Lists' and the GET endpoint, and mentions pagination support. However, it does not describe return format, rate limits, or other behavioral details, leaving some uncertainty.

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

Conciseness5/5

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

The description is a single, well-structured sentence that front-loads the core purpose, then adds the endpoint and pagination capability. Every word earns its place with no redundancy.

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?

For a simple list tool with fully documented input schema, the description is adequate. It covers the operation and pagination, but since there is no output schema, it does not explain the return value structure or search behavior details. Still, it is largely complete for the tool's simplicity.

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

Parameters3/5

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

Schema coverage is 100% with all three parameters described. The description's phrase 'Supports pagination query params' provides a conceptual grouping, but it does not add meaning beyond the schema's detailed property descriptions, so baseline 3 applies.

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 the tool's function with a specific verb and resource: 'Lists incident/outage notifications'. It also includes the GET endpoint for additional clarity. This distinguishes it from sibling tools like chim_list_changes and chim_create_outage.

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

Usage Guidelines3/5

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

The description implies its usage for listing outages but provides no explicit when-to-use guidance or alternatives. Since sibling tools like chim_list_changes exist, the description could have clarified when to choose this over others, but it does not.

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

chim_list_retrosA

Lists retrospectives created in CHIM (GET /api/v1/retros/). Supports pagination query params.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number to fetch (1-based).
searchNoSearch keyword supported by the CHIM API.
page_sizeNoNumber of records to fetch per page (1-100).

TDQS

A4/5.0
Behavior3/5

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

With no annotations provided, the description carries the burden. It discloses that this is a read operation ('Lists') and that pagination is supported. However, it does not describe return format, default behavior, or any access constraints. This is acceptable for a simple list tool but leaves some gaps.

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

Conciseness5/5

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

The description is two sentences, front-loaded with the core purpose. Every word earns its place; the API endpoint and pagination note are useful but do not bloat the text.

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?

Given the tool's simplicity (list operation, 3 optional params) and no output schema, the description plus schema provide enough context for an agent to invoke it correctly. The endpoint reference and pagination hint complete the picture. Sibling tools further clarify its role.

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

Parameters3/5

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

Schema description coverage is 100%, so all three parameters (page, search, page_size) are already well-documented in the schema. The description only adds a generic note about pagination, providing no additional semantic value beyond the schema.

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 the tool 'Lists retrospectives created in CHIM' with the specific verb 'Lists' and the resource 'retrospectives', distinguishing it from sibling tools like chim_list_changes and chim_list_outages. Including the API endpoint adds specificity.

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 clearly indicates this tool is for listing retrospectives, which implies use when retro data is needed. It does not explicitly name alternatives, but the sibling names make the distinction obvious. Mentions pagination query params, giving context on how to iterate results.

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

chim_save_api_keyB

Stores the CHIM API key in the user config file (~/.config/chim-mcp/config.json).

ParametersJSON Schema
NameRequiredDescriptionDefault
api_keyYesCHIM API key to store locally.
base_urlNoOptional override for the CHIM API base URL.
user_agentNoOptional override for the User-Agent header.

TDQS

B3.3/5.0
Behavior2/5

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

With no annotations, the description carries the full burden of behavioral disclosure. It does reveal the side effect of writing to a config file, but it omits critical details such as whether an existing API key is overwritten, whether the config file is created if missing, or any validation/security implications. This is a significant transparency gap for a state-changing tool.

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

Conciseness5/5

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

The description is a single, well-structured sentence that is immediately informative. It includes the exact config file path and avoids redundancy or filler, earning a top score for conciseness.

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?

The tool is relatively simple, and the schema covers all parameters, but the description omits the optional base_url and user_agent parameters and does not explain behavior like file overwriting or return values. For a minimal config-writing tool without annotations or output schema, the description is adequate but not fully complete.

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

Parameters3/5

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

The schema provides 100% coverage of all parameters, each with a clear description, so the baseline is 3. The tool description adds no parameter-specific information, but the schema fully documents the API key, base URL, and user agent parameters, making this adequate.

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 the tool's primary function (stores the CHIM API key) and specifies the exact resource and location (~/.config/chim-mcp/config.json). This distinguishes it from sibling tools that operate on changes, outages, and retros, making the purpose unambiguous.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool vs alternatives. It does not mention that it is a prerequisite for using other CHIM tools or that it should be called during setup. The description simply states what it does, leaving usage context implicit at best.

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

TDQS

A3.6/5.0
Disambiguation5/5

Each tool targets a clearly distinct resource and action: status, API key, change list/create, outage list/create, and retro list. There is no meaningful overlap between any pair of tools.

Naming Consistency4/5

All tools follow a consistent chim_ prefix and use a verb_noun pattern (get, save, list, create). The only minor inconsistency is that 'get' is used for status while separate list operations are used for resources, but this is understandable and not chaotic.

Tool Count5/5

Seven tools is a well-scoped size for a CHIM notification server covering status, authentication, and three resource types. Each tool serves a distinct purpose without bloat or obvious omissions.

Completeness2/5

The tool surface is incomplete for the apparent domain: changes and outages only have list and create, lacking update, delete, and get single. Retrospectives are only listable, with no create or management. This leaves significant operational gaps.

Maintenance

ActivityInactive
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    D
    maintenance
    Provides tools for AI assistants to interact with JIRA APIs, enabling them to read, create, update, and manage JIRA issues through standardized MCP tools.
    6
    20
    3
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    Enables AI models to perform IT service management operations on Freshservice, including managing tickets, changes, problems, releases, assets, projects, and more through a set of MCP tools.
    36
    2
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    Enables managing cron jobs, maintenance windows, and settings through natural language by exposing the Cronmanager REST API as MCP tools for LLM clients like Claude.
    GPL 3.0

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/abhchoug/chim-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server