Bucketeer MCP Server
Uses environment variables for configuration through a .env file, allowing users to securely store and access their Bucketeer credentials and settings.
Runs on Node.js platform (version 18 or higher), leveraging it to implement the MCP server for Bucketeer feature flag management.
Built with TypeScript for type safety and better developer experience, as evidenced by the project structure including TypeScript configuration and type definitions.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Bucketeer MCP Serverlist all active feature flags for the checkout flow"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Bucketeer MCP Server
A Model Context Protocol (MCP) server for managing feature flags in Bucketeer, an open-source feature flag management platform.
Features
This MCP server provides tools for basic CRUD operations on Bucketeer feature flags:
listFeatureFlags - List all feature flags with filtering and pagination
createFeatureFlag - Create a new feature flag
getFeatureFlag - Get a specific feature flag by ID
updateFeatureFlag - Update an existing feature flag
archiveFeatureFlag - Archive a feature flag (make it inactive)
Related MCP server: hackle-mcp
Prerequisites
Node.js 18 or higher
A Bucketeer instance with API access
An API key with appropriate permissions (READ, WRITE, or ADMIN)
Installation
Clone this repository:
git clone https://github.com/yourusername/bucketeer-mcp.git
cd bucketeer-mcpInstall dependencies:
npm installBuild the project:
npm run buildCreate a
.envfile based on.env.example:
cp .env.example .envConfigure your environment variables in
.env:
BUCKETEER_HOST=api.bucketeer.io
BUCKETEER_API_KEY=your-api-key-here
BUCKETEER_ENVIRONMENT_ID=your-environment-id
LOG_LEVEL=infoUsage
Running the Server
Start the MCP server:
npm startFor development with auto-reload:
npm run devMCP Client Configuration
To use this server with an MCP client, add it to your MCP client configuration:
{
"mcpServers": {
"bucketeer": {
"command": "node",
"args": ["/path/to/bucketeer-mcp/dist/index.js"],
"env": {
"BUCKETEER_HOST": "api.bucketeer.io",
"BUCKETEER_API_KEY": "your-api-key",
"BUCKETEER_ENVIRONMENT_ID": "your-environment-id"
}
}
}
}Available Tools
listFeatureFlags
List all feature flags in the specified environment.
Parameters:
environmentId(optional) - Environment ID (uses default if not provided)pageSize(optional) - Number of items per page (1-100, default: 20)cursor(optional) - Pagination cursor for next pagetags(optional) - Filter by tagsorderBy(optional) - Field to order by (CREATED_AT, UPDATED_AT, NAME)orderDirection(optional) - Order direction (ASC, DESC)searchKeyword(optional) - Search keyword for feature name or IDmaintainer(optional) - Filter by maintainer emailarchived(optional) - Filter by archived status
createFeatureFlag
Create a new feature flag.
Parameters:
id(required) - Unique identifier (alphanumeric, hyphens, underscores)name(required) - Human-readable namedescription(optional) - Description of the feature flagenvironmentId(optional) - Environment ID (uses default if not provided)variations(required) - Array of variations (at least 2)value(required) - The value returned when this variation is servedname(required) - Name of the variationdescription(optional) - Description of the variation
tags(optional) - Tags for the feature flagdefaultOnVariationIndex(required) - Index of variation when flag is on (0-based)defaultOffVariationIndex(required) - Index of variation when flag is off (0-based)variationType(optional) - Type of the variation values: STRING (default), BOOLEAN, NUMBER, or JSON
getFeatureFlag
Get a specific feature flag by ID.
Parameters:
id(required) - The ID of the feature flag to retrieveenvironmentId(optional) - Environment ID (uses default if not provided)featureVersion(optional) - Specific version of the feature to retrieve
updateFeatureFlag
Update an existing feature flag.
Parameters:
id(required) - The ID of the feature flag to updatecomment(required) - Comment for the update (required for audit trail)environmentId(optional) - Environment ID (uses default if not provided)name(optional) - New name for the feature flagdescription(optional) - New descriptiontags(optional) - New tagsenabled(optional) - Enable or disable the feature flagarchived(optional) - Archive or unarchive the feature flag
Note:
This tool requires a comment for audit trail purposes
It does not support updating variations. To modify variations, you would need to archive the current flag and create a new one.
archiveFeatureFlag
Archive a feature flag (make it inactive). Archived flags will return the default value defined in your code for all users.
Parameters:
id(required) - The ID of the feature flag to archiveenvironmentId(optional) - Environment ID (uses default if not provided)comment(required) - Comment for the archive action (required for audit trail)
Note: This operation archives the flag rather than permanently deleting it. The flag can be unarchived later if needed.
API Key Permissions
Different operations require different permission levels:
READ: Required for listFeatureFlags and getFeatureFlag
WRITE: Required for createFeatureFlag, updateFeatureFlag, and archiveFeatureFlag
Development
Project Structure
bucketeer-mcp/
├── src/
│ ├── api/
│ │ └── client.ts # Bucketeer API client
│ ├── tools/
│ │ ├── list-flags.ts # List feature flags tool
│ │ ├── create-flag.ts # Create feature flag tool
│ │ ├── get-flag.ts # Get feature flag tool
│ │ ├── update-flag.ts # Update feature flag tool
│ │ ├── archive-flag.ts # Archive feature flag tool
│ │ └── index.ts # Tool exports
│ ├── types/
│ │ └── bucketeer.ts # TypeScript type definitions
│ ├── utils/
│ │ └── logger.ts # Logging utility
│ ├── config.ts # Configuration management
│ ├── server.ts # MCP server implementation
│ └── index.ts # Entry point
├── .env.example # Environment variables template
├── .gitignore
├── package.json
├── tsconfig.json
└── README.mdLinting
Run the linter:
npm run lintBuilding
Build the TypeScript code:
npm run buildTroubleshooting
Common Issues
Authentication errors: Ensure your API key is valid and has the necessary permissions
Environment ID not found: Verify the environment ID exists in your Bucketeer instance
Connection errors: Check that the BUCKETEER_HOST is correct and accessible
Logging
The server logs to stderr in JSON format. Adjust the log level using the LOG_LEVEL environment variable:
error- Only errorswarn- Warnings and errorsinfo- General information (default)debug- Detailed debug information
License
MIT
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
Available Tools
5 toolsarchiveFeatureFlagC
Archive a feature flag (make it inactive)
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The ID of the feature flag to archive | |
| environmentId | No | Environment ID (uses default if not provided) | |
| comment | Yes | Comment for the archive action (required for audit trail) |
TDQS
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 states the action ('archive') and outcome ('make it inactive'), but doesn't mention critical details like whether this is reversible, requires specific permissions, affects audit trails, or has side effects on dependent systems. This is a significant gap 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with zero waste. It's front-loaded with the core action and outcome, making it easy to scan and understand quickly without unnecessary elaboration.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of archiving (a mutation operation), no annotations, and no output schema, the description is incomplete. It doesn't cover behavioral aspects like reversibility, permissions, or response format, which are essential for safe and effective tool invocation by an AI agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, so the schema fully documents all three parameters. The description adds no additional meaning beyond what the schema provides, such as explaining the purpose of 'comment' beyond audit trails or default behavior for 'environmentId'. Baseline 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('archive') and resource ('feature flag') with the outcome ('make it inactive'), which is specific and unambiguous. However, it doesn't explicitly differentiate from sibling tools like 'updateFeatureFlag', which might also modify flag status, leaving some room for confusion.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'updateFeatureFlag' or 'createFeatureFlag'. It lacks context about prerequisites, such as whether the flag must be active, or exclusions, such as not using it for temporary deactivation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
createFeatureFlagC
Create a new feature flag in the specified environment
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Unique identifier for the feature flag (alphanumeric, hyphens, underscores) | |
| name | Yes | Human-readable name for the feature flag | |
| description | No | Description of the feature flag | |
| environmentId | No | Environment ID (uses default if not provided) | |
| variations | Yes | List of variations (at least 2 required) | |
| tags | No | Tags for the feature flag | |
| defaultOnVariationIndex | Yes | Index of the variation to serve when flag is on (0-based) | |
| defaultOffVariationIndex | Yes | Index of the variation to serve when flag is off (0-based) | |
| variationType | No | Type of the variation values (default: STRING) |
TDQS
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 states this is a creation operation but doesn't mention any behavioral traits like required permissions, whether the flag becomes active immediately, rate limits, or what happens on duplicate IDs. For a mutation tool with zero annotation coverage, this leaves significant gaps in understanding how the tool behaves.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence that immediately states the tool's purpose without unnecessary words. It's perfectly front-loaded and wastes no space, making it easy for an agent to parse quickly while scanning available tools.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a creation tool with 9 parameters, no annotations, and no output schema, the description is insufficient. It doesn't explain what happens after creation, error conditions, or how this tool fits into the broader feature flag lifecycle with its siblings. The agent would need to rely heavily on the schema alone, missing important contextual information.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, so the schema already documents all 9 parameters thoroughly. The description adds no additional parameter semantics beyond what's in the schema, not explaining relationships between parameters or providing usage examples. This meets the baseline expectation when schema coverage is complete.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Create') and resource ('feature flag in the specified environment'), making the purpose immediately understandable. However, it doesn't differentiate this tool from its siblings like 'updateFeatureFlag' or 'archiveFeatureFlag' beyond the basic verb difference, missing an opportunity to clarify the specific creation context.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'updateFeatureFlag' or 'archiveFeatureFlag'. It mentions 'specified environment' but doesn't explain prerequisites, dependencies, or typical use cases, leaving the agent to infer usage from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getFeatureFlagC
Get a specific feature flag by ID
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The ID of the feature flag to retrieve | |
| environmentId | No | Environment ID (uses default if not provided) | |
| featureVersion | No | Specific version of the feature to retrieve |
TDQS
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 states the tool retrieves a feature flag but doesn't describe what happens if the ID doesn't exist (e.g., error handling), whether it's idempotent, authentication needs, rate limits, or the return format. For a read operation with zero annotation coverage, this leaves significant gaps in understanding the tool's behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's purpose without any wasted words. It's front-loaded with the core action and resource, making it easy to parse quickly. Every part of the sentence earns its place by conveying essential information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (3 parameters, no output schema, no annotations), the description is incomplete. It lacks details on behavioral traits (e.g., error handling, return format), usage context relative to siblings, and doesn't address what 'Get' entails beyond the basic action. For a tool with no annotations or output schema, more descriptive context is needed to fully inform an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the input schema already documents all three parameters (id, environmentId, featureVersion) with clear descriptions. The description adds no additional meaning beyond implying 'id' is required (matching the schema's required field). Baseline 3 is appropriate as the schema does the heavy lifting, but the description doesn't compensate or enhance parameter understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Get') and resource ('a specific feature flag by ID'), making the purpose immediately understandable. It distinguishes from siblings like 'listFeatureFlags' by specifying retrieval of a single item rather than a collection. However, it doesn't explicitly contrast with other siblings like 'archiveFeatureFlag' or 'updateFeatureFlag' beyond the verb difference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing an existing flag ID), exclusions (e.g., not for creating or modifying flags), or direct comparisons to siblings like 'listFeatureFlags' for bulk retrieval. Usage is implied by the verb 'Get' but lacks explicit context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
listFeatureFlagsC
List all feature flags in the specified environment
| Name | Required | Description | Default |
|---|---|---|---|
| environmentId | No | Environment ID (uses default if not provided) | |
| pageSize | No | Number of items per page (1-100) | |
| cursor | No | Pagination cursor for next page | |
| tags | No | Filter by tags | |
| orderBy | No | Field to order by | |
| orderDirection | No | Order direction | |
| searchKeyword | No | Search keyword for feature name or ID | |
| maintainer | No | Filter by maintainer email | |
| archived | No | Filter by archived status |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but only states it 'lists all' without disclosing key behaviors: it doesn't mention pagination (implied by 'cursor' parameter but not explained), rate limits, authentication needs, or that it might return partial results. The description is minimal and misses critical operational context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core purpose without unnecessary words. Every part ('List all feature flags in the specified environment') directly contributes to understanding the tool's function.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 9 parameters, no annotations, and no output schema, the description is inadequate. It doesn't explain the return format (e.g., list structure, pagination tokens), error conditions, or how parameters interact (e.g., combining 'tags' and 'searchKeyword'). Given the complexity, more context is needed for effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents all 9 parameters. The description adds no parameter-specific information beyond implying environment filtering, which is already covered in the schema. This meets the baseline for high schema coverage but doesn't enhance understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('List all') and resource ('feature flags in the specified environment'), making the purpose immediately understandable. However, it doesn't differentiate from sibling tools like 'getFeatureFlag' which might retrieve a single flag, leaving some ambiguity about when to use each.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'getFeatureFlag' for single flags or 'searchKeyword' parameter for filtered results. It lacks context about prerequisites, such as needing environment access, or exclusions like when not to use it for archived flags.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
updateFeatureFlagC
Update an existing feature flag
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The ID of the feature flag to update | |
| comment | Yes | Comment for the update (required for audit trail) | |
| environmentId | No | Environment ID (uses default if not provided) | |
| name | No | New name for the feature flag | |
| description | No | New description for the feature flag | |
| tags | No | New tags for the feature flag | |
| enabled | No | Enable or disable the feature flag | |
| archived | No | Archive or unarchive the feature flag |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. 'Update an existing feature flag' implies a mutation operation, but it doesn't disclose critical traits like required permissions, whether changes are reversible, rate limits, or what happens to unspecified fields. For a mutation tool with 8 parameters and no annotation coverage, this is a significant gap in transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that states the core purpose without any wasted words. It's appropriately sized for a tool with good schema coverage and gets straight to the point. Every word earns its place, making it easy for an agent to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (8 parameters, mutation operation) and lack of both annotations and output schema, the description is insufficiently complete. It doesn't explain what fields can be updated, what the response looks like, or behavioral constraints. For a feature flag management tool with multiple sibling alternatives, more context about scope and limitations would be needed for effective agent use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with all 8 parameters well-documented in the input schema. The description adds no parameter-specific information beyond what's in the schema, so it doesn't enhance understanding of individual parameters. However, the baseline score of 3 is appropriate since the schema already provides comprehensive parameter documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Update') and resource ('an existing feature flag'), making the purpose immediately understandable. It doesn't differentiate from sibling tools like 'createFeatureFlag' or 'archiveFeatureFlag', but the verb 'Update' versus 'Create' or 'Archive' provides basic distinction. The description is specific enough to understand what the tool does without being tautological.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'archiveFeatureFlag' or 'createFeatureFlag'. It doesn't mention prerequisites (e.g., that the feature flag must exist), exclusions, or contextual factors that would help an agent choose between sibling tools. The agent must infer usage from the tool name alone.
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. Dates show when Glama detected each change.
5 tool updates
v1.0.0- First observed
archiveFeatureFlag - First observed
createFeatureFlag - First observed
getFeatureFlag - First observed
listFeatureFlags - First observed
updateFeatureFlag
TDQS
Each tool has a clearly distinct purpose targeting specific CRUD operations on feature flags: list (retrieve all), get (retrieve one), create (add new), update (modify existing), and archive (deactivate). No ambiguity exists between these actions, making tool selection straightforward for an agent.
All tool names follow a consistent verb_noun pattern (e.g., listFeatureFlags, createFeatureFlag) with perfect adherence to camelCase. The naming is predictable and readable across all five tools, with no deviations in style or convention.
With 5 tools, this server is well-scoped for managing feature flags, covering essential CRUD operations plus archiving. Each tool earns its place without redundancy, and the count is appropriate for the domain, avoiding being too sparse or bloated.
The tool set provides complete lifecycle coverage for feature flags: create, read (list and get), update, and archive (as a soft delete). There are no obvious gaps, and agents can perform all core operations without dead ends in the domain of feature flag management.
Maintenance
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
Model Context Protocol server for the Apideck Unified API. Connect any MCP-compatible agent framework to 100+ accounting systems, HRIS platforms, file storage providers, and more through one integration. More information https://www.apideck.com/mcp-server
MCP server for Statsig API - interact with Statsig's feature flags, experiments, and analytics
Remote MCP server for the Hackle Admin API: experiments, feature flags, remote config, messaging.
A Model Context Protocol (MCP) server for Selise Blocks Cloud integration
Related MCP Servers
- AlicenseBqualityDmaintenanceA Model Context Protocol (MCP) server implementation that integrates with Unleash Feature Toggle system.2138711MIT

hackle-mcpofficial
AlicenseBqualityCmaintenanceA Model Context Protocol server for Hackle API providing tools and resources for querying A/B Test data.195203MIT
GrowthBook MCP Serverofficial
AlicenseBqualityBmaintenanceOfficial GrowthBook MCP server for creating flags, getting experiments, and more.148,01323MIT- FlicenseNot gradedqualityDmaintenanceA server implementation of the Model Context Protocol (MCP) that provides REST API endpoints for managing and interacting with MCP resources.-
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/nnnkkk7/bucketeer-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server