Skip to main content
Glama
README.md10.5 kB
# @contentful/mcp-tools A toolkit package containing reusable MCP (Model Context Protocol) tools for Contentful. This package provides structured tool collections with complete metadata including descriptions, input schemas, semantic annotations, and tool implementations. ## Installation ```bash npm install @contentful/mcp-tools ``` ## Usage ### Using Tool Collections The package exports tool collections organized by category. Each tool in a collection includes: - `title`: The tool name - `description`: What the tool does - `inputParams`: Zod schema for input validation - `annotations`: Semantic hints about tool behavior (readOnly, destructive, idempotent, openWorld) - `tool`: The actual tool implementation function ```typescript import { entryTools, assetTools, contextTools } from '@contentful/mcp-tools'; import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js'; const server = new McpServer(); // Register a specific tool const { searchEntries } = entryTools; server.registerTool( searchEntries.title, { description: searchEntries.description, inputSchema: searchEntries.inputParams, annotations: searchEntries.annotations, }, searchEntries.tool, ); // Register all tools from a collection Object.values(assetTools).forEach((toolConfig) => { server.registerTool( toolConfig.title, { description: toolConfig.description, inputSchema: toolConfig.inputParams, annotations: toolConfig.annotations, }, toolConfig.tool, ); }); ``` ### Available Tool Collections ```typescript import { aiActionTools, // AI action management assetTools, // Asset operations contentTypeTools, // Content type management contextTools, // Initial context setup entryTools, // Entry operations environmentTools, // Environment management jobTools, // Long-running jobs localeTools, // Locale management orgTools, // Organization operations spaceTools, // Space operations tagTools, // Tag management taxonomyTools, // Taxonomy/concept scheme operations } from '@contentful/mcp-tools'; ``` ### Tool Annotations Each tool includes semantic annotations to help MCP clients understand tool behavior: - **`readOnlyHint`**: `true` if the tool only reads data without modifications - **`destructiveHint`**: `true` if the tool permanently deletes or removes data - **`idempotentHint`**: `true` if calling the tool multiple times with the same input produces the same result - **`openWorldHint`**: `true` if the tool interacts with external services or systems beyond Contentful ## 🛠️ Available Tools | Category | Tool Name | Description | | ------------------------- | ---------------------------------- | ------------------------------------------------ | | **Context & Setup** | `get_initial_context` | Initialize connection and get usage instructions | | **Content Types** | `list_content_types` | List content types (max 10 per request) | | | `get_content_type` | Get detailed content type information | | | `create_content_type` | Create new content types | | | `update_content_type` | Modify existing content types | | | `publish_content_type` | Publish content type changes | | | `unpublish_content_type` | Unpublish content types | | | `delete_content_type` | Remove content types | | **Entries** | `search_entries` | Search and filter entries in your space | | | `get_entry` | Retrieve specific entries | | | `create_entry` | Create new content entries with locale support | | | `update_entry` | Modify existing entries with locale support | | | `publish_entry` | Publish entries (single or bulk up to 100) | | | `unpublish_entry` | Unpublish entries (single or bulk up to 100) | | | `delete_entry` | Remove entries | | **Editor Interfaces** | `list_editor_interfaces` | List all editor interfaces in a space | | | `get_editor_interface` | Get editor interface for a content type | | | `update_editor_interface` | Update field controls, sidebars, and layouts | | **Assets** | `upload_asset` | Upload new assets | | | `list_assets` | List and browse assets (max 3 per request) | | | `get_asset` | Retrieve specific assets | | | `update_asset` | Modify asset metadata | | | `publish_asset` | Publish assets (single or bulk up to 100) | | | `unpublish_asset` | Unpublish assets (single or bulk up to 100) | | | `delete_asset` | Remove assets | | **Spaces & Environments** | `list_spaces` | List available spaces (max 10 per request) | | | `get_space` | Get space details | | | `list_environments` | List environments in a space | | | `create_environment` | Create new environments | | | `delete_environment` | Remove environments | | **Locales** | `list_locales` | List all locales in your environment | | | `get_locale` | Retrieve specific locale information | | | `create_locale` | Create new locales for multi-language content | | | `update_locale` | Modify existing locale settings | | | `delete_locale` | Remove locales from environment | | **Tags** | `list_tags` | List all tags in an environment | | | `create_tag` | Create new tags with public/private visibility | | **Organizations** | `list_orgs` | List organizations user has access to | | | `get_org` | Get details of a specific organization | | **AI Actions** | `create_ai_action` | Create custom AI-powered workflows | | | `invoke_ai_action` | Invoke AI action with variables (bulk support) | | | `get_ai_action_invocation` | Get AI action invocation details | | | `get_ai_action` | Retrieve AI action details and configuration | | | `list_ai_actions` | List AI actions in a space (max 3 per request) | | | `update_ai_action` | Update existing AI actions | | | `publish_ai_action` | Publish AI actions for use | | | `unpublish_ai_action` | Unpublish AI actions | | | `delete_ai_action` | Remove AI actions | | **Taxonomy Concepts** | `create_concept` | Create new taxonomy concepts with localization | | | `get_concept` | Retrieve specific taxonomy concept | | | `list_concepts` | List concepts with filtering and hierarchy | | | `update_concept` | Update taxonomy concept properties | | | `delete_concept` | Remove taxonomy concepts | | **Taxonomy Schemes** | `create_concept_scheme` | Create new taxonomy concept schemes | | | `get_concept_scheme` | Retrieve specific concept scheme | | | `list_concept_schemes` | List concept schemes with pagination | | | `update_concept_scheme` | Update concept scheme properties | | | `delete_concept_scheme` | Remove concept schemes | | **Space Migration** | `space_to_space_migration_handler` | Enable/disable space migration workflow | | | `space_to_space_param_collection` | Collect parameters for migration workflow | | | `export_space` | Export space to file for migration | | | `import_space` | Import space from exported file | ## Configuration The tools require environment variables to be configured: ```bash CONTENTFUL_MANAGEMENT_ACCESS_TOKEN=your_token_here CONTENTFUL_HOST=api.contentful.com SPACE_ID=your_space_id ENVIRONMENT_ID=master ``` ## Testing All tools include comprehensive unit tests. Run tests with: ```bash npm test ``` ## License MIT

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/contentful/contentful-mcp-server'

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