Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 21 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -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"]
75 changes: 11 additions & 64 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,15 +1,7 @@
<!--datocms-autoinclude-header start-->

<a href="https://www.datocms.com/"><img src="https://www.datocms.com/images/full_logo.svg" height="60"></a>

👉 [Visit the DatoCMS homepage](https://www.datocms.com) or see [What is DatoCMS?](#what-is-datocms)

---

<!--datocms-autoinclude-header end-->

## 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
Expand Down Expand Up @@ -120,6 +112,14 @@ Follow Windsurf MCP [documentation](https://docs.windsurf.com/windsurf/cascade/m

</details>

### 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:
Expand Down Expand Up @@ -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).

<!--datocms-autoinclude-footer start-->

---

# What is DatoCMS?

<a href="https://www.datocms.com/"><img src="https://www.datocms.com/images/full_logo.svg" height="60" alt="DatoCMS - The Headless CMS for the Modern Web"></a>

[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)

<!--datocms-autoinclude-footer end-->
- **cma_js_client_resource_action_destructive_method_execute**: Perform destructive operation to the project (create, update, destroy, etc.)
19 changes: 19 additions & 0 deletions smithery.yaml
Original file line number Diff line number Diff line change
@@ -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: ""