From 61b97e1718a8717d6d293539ebea0941c9178ec3 Mon Sep 17 00:00:00 2001 From: "smithery-ai[bot]" <194235850+smithery-ai[bot]@users.noreply.github.com> Date: Thu, 31 Jul 2025 15:16:54 +0000 Subject: [PATCH 1/3] Add Dockerfile --- Dockerfile | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 Dockerfile diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..34a1009 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,21 @@ +# Generated by https://smithery.ai. See: https://smithery.ai/docs/build/project-config +FROM node:lts-alpine + +WORKDIR /app + +# Install build tools and dependencies +RUN apk add --no-cache python3 make g++ + +# Copy package files and config +COPY package.json package-lock.json tsconfig.json ./ +COPY src ./src +COPY bin ./bin + +# Install dependencies and build +RUN npm ci && npm run build + +# Set execution permissions +RUN chmod +x bin/stdio + +# Start command uses stdio transport +ENTRYPOINT ["node", "dist/stdio.js"] From 416751e9cef8cf37c27795566505ffbc202663d4 Mon Sep 17 00:00:00 2001 From: "smithery-ai[bot]" <194235850+smithery-ai[bot]@users.noreply.github.com> Date: Thu, 31 Jul 2025 15:16:55 +0000 Subject: [PATCH 2/3] Add Smithery configuration --- smithery.yaml | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 smithery.yaml diff --git a/smithery.yaml b/smithery.yaml new file mode 100644 index 0000000..f657d11 --- /dev/null +++ b/smithery.yaml @@ -0,0 +1,19 @@ +# Smithery configuration file: https://smithery.ai/docs/build/project-config + +startCommand: + type: stdio + commandFunction: + # A JS function that produces the CLI command based on the given config to start the MCP on stdio. + |- + (config) => ({ command: 'node', args: ['dist/stdio.js'], env: config.datocmsApiToken ? { DATOCMS_API_TOKEN: config.datocmsApiToken } : {} }) + configSchema: + # JSON Schema defining the configuration options for the MCP. + type: object + required: [] + properties: + datocmsApiToken: + type: string + default: "" + description: Your DatoCMS API token for project. Leave empty for read-only usage. + exampleConfig: + datocmsApiToken: "" From 3ecc17e9b15ed65b0ce7f4f03a9d75d386af12be Mon Sep 17 00:00:00 2001 From: "smithery-ai[bot]" <194235850+smithery-ai[bot]@users.noreply.github.com> Date: Thu, 31 Jul 2025 15:16:55 +0000 Subject: [PATCH 3/3] Update README --- README.md | 75 ++++++++----------------------------------------------- 1 file changed, 11 insertions(+), 64 deletions(-) diff --git a/README.md b/README.md index c91137c..a8464cb 100644 --- a/README.md +++ b/README.md @@ -1,15 +1,7 @@ - - - - -👉 [Visit the DatoCMS homepage](https://www.datocms.com) or see [What is DatoCMS?](#what-is-datocms) - ---- - - - ## DatoCMS MCP Server +[![smithery badge](https://smithery.ai/badge/@datocms/mcp)](https://smithery.ai/server/@datocms/mcp) + A local Model Context Protocol (MCP) server that provides AI assistants with tools to interact with the [DatoCMS Content Management API](https://www.datocms.com/docs/content-management-api). This server enables LLMs to explore and execute DatoCMS API operations through structured documentation and safe execution capabilities. ### Key Features @@ -120,6 +112,14 @@ Follow Windsurf MCP [documentation](https://docs.windsurf.com/windsurf/cascade/m +### Installing via Smithery + +To install DatoCMS MCP Server for Claude Desktop automatically via [Smithery](https://smithery.ai/server/@datocms/mcp): + +```bash +npx -y @smithery/cli install @datocms/mcp --client claude +``` + ### Configuration The DatoCMS MCP server supports one optional environment variable: @@ -168,57 +168,4 @@ The DatoCMS MCP server provides the following tools: #### Execution Tools (require an API token with appropriate permission) - **cma_js_client_resource_action_readonly_method_execute**: Perform an read-only operation to the project -- **cma_js_client_resource_action_destructive_method_execute**: Perform destructive operation to the project (create, update, destroy, etc.) - - -## License - -The package is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT). - - - ---- - -# What is DatoCMS? - -DatoCMS - The Headless CMS for the Modern Web - -[DatoCMS](https://www.datocms.com/) is the REST & GraphQL Headless CMS for the modern web. - -Trusted by over 25,000 enterprise businesses, agencies, and individuals across the world, DatoCMS users create online content at scale from a central hub and distribute it via API. We ❤️ our [developers](https://www.datocms.com/team/best-cms-for-developers), [content editors](https://www.datocms.com/team/content-creators) and [marketers](https://www.datocms.com/team/cms-digital-marketing)! - -**Why DatoCMS?** - -- **API-First Architecture**: Built for both REST and GraphQL, enabling flexible content delivery -- **Just Enough Features**: We believe in keeping things simple, and giving you [the right feature-set tools](https://www.datocms.com/features) to get the job done -- **Developer Experience**: First-class TypeScript support with powerful developer tools - -**Getting Started:** - -- ⚡️ [Create Free Account](https://dashboard.datocms.com/signup) - Get started with DatoCMS in minutes -- 🔖 [Documentation](https://www.datocms.com/docs) - Comprehensive guides and API references -- ⚙️ [Community Support](https://community.datocms.com/) - Get help from our team and community -- 🆕 [Changelog](https://www.datocms.com/product-updates) - Latest features and improvements - -**Official Libraries:** - -- [**Content Delivery Client**](https://github.com/datocms/cda-client) - TypeScript GraphQL client for content fetching -- [**REST API Clients**](https://github.com/datocms/js-rest-api-clients) - Node.js/Browser clients for content management -- [**CLI Tools**](https://github.com/datocms/cli) - Command-line utilities for schema migrations (includes [Contentful](https://github.com/datocms/cli/tree/main/packages/cli-plugin-contentful) and [WordPress](https://github.com/datocms/cli/tree/main/packages/cli-plugin-wordpress) importers) - -**Official Framework Integrations** - -Helpers to manage SEO, images, video and Structured Text coming from your DatoCMS projects: - -- [**React Components**](https://github.com/datocms/react-datocms) -- [**Vue Components**](https://github.com/datocms/vue-datocms) -- [**Svelte Components**](https://github.com/datocms/datocms-svelte) -- [**Astro Components**](https://github.com/datocms/astro-datocms) - -**Additional Resources:** - -- [**Plugin Examples**](https://github.com/datocms/plugins) - Example plugins we've made that extend the editor/admin dashboard -- [**Starter Projects**](https://www.datocms.com/marketplace/starters) - Example website implementations for popular frameworks -- [**All Public Repositories**](https://github.com/orgs/datocms/repositories?q=&type=public&language=&sort=stargazers) - - +- **cma_js_client_resource_action_destructive_method_execute**: Perform destructive operation to the project (create, update, destroy, etc.) \ No newline at end of file