Skip to main content
Glama

Sitecore MCP Server

CI Root Hygiene TypeScript Code Style: Prettier License: MIT Node.js Version

A Model Context Protocol (MCP) server for Sitecore with GraphQL API, version control, parent navigation, and item statistics. Query Sitecore items via AI assistants like Claude and GitHub Copilot.

✨ Features

🎯 Core Tools (21 total)

Item Operations:

  • πŸ” sitecore_get_item - Get a specific Sitecore item (with version support)

  • πŸ‘Ά sitecore_get_children - Get child items (with version support)

  • πŸ“„ sitecore_get_field_value - Get a field value (with version support)

  • οΏ½ sitecore_get_item_fields - Get all fields of an item (template-aware)

  • οΏ½πŸ”Ž sitecore_query - Execute Sitecore queries

  • πŸ” sitecore_search - Search items with filters and ordering

  • πŸ“„ sitecore_search_paginated - Search with pagination support

Template Operations:

  • πŸ“‹ sitecore_get_template - Get template information

  • πŸ“š sitecore_get_templates - Get multiple templates

Version Control:

  • πŸ• sitecore_get_item_versions - See all versions of an item

  • πŸ“Š sitecore_get_item_with_statistics - Get created/updated dates and users

Navigation:

  • ⬆️ sitecore_get_parent - Navigate to parent item

  • 🧭 sitecore_get_ancestors - Get all ancestors (breadcrumb)

Layout & Sites:

  • 🎨 sitecore_get_layout - Get layout/presentation information

  • 🌐 sitecore_get_sites - Get Sitecore site configurations

Mutations (Create/Update/Delete):

  • βž• sitecore_create_item - Create new Sitecore items

  • ✏️ sitecore_update_item - Update existing items

  • ❌ sitecore_delete_item - Delete items

Advanced Features:

  • πŸ”¬ sitecore_scan_schema - Automatic GraphQL schema analysis

  • πŸ’¬ sitecore_command - Natural language /sitecore commands in chat

  • πŸ” sitecore_discover_item_dependencies - Comprehensive item discovery with template, fields, and relationships

πŸ“£ Live progress (all tools)

All MCP tools now report progress via stderr so you can see what's happening during longer operations in your AI client.

  • Format: [tool_name] Message...

  • Examples:

    • [sitecore_get_item] Starting (path=/sitecore/content/Home, language=nl-NL)

    • [sitecore_get_item] Completed: Home (template=Page, version=1)

    • [sitecore_search_paginated] Completed: 50 item(s), hasNextPage=true

Note: We always mention the language in messages (critical for Sitecore).

🎨 Examples

Via Slash Command Menu (Type / in chat):

# 1. Type / to open the menu # 2. Choose "πŸ”§ /sitecore - Sitecore command interface" # 3. Type your command (with or without /sitecore prefix) help get item /sitecore/content/Home get item /sitecore/content/Home version 2 # NEW: Version support! get parent /sitecore/content/Home/Article # NEW: Parent navigation! get ancestors /sitecore/content/Home/Article # NEW: Breadcrumb! search articles field Title from /sitecore/content/Home templates

Direct Natural Language Commands:

/sitecore help /sitecore scan schema /sitecore get item /sitecore/content/Home /sitecore get item /sitecore/content/Home version 2 /sitecore get parent /sitecore/content/Home/Article /sitecore get ancestors /sitecore/content/Home/Article /sitecore search articles /sitecore field Title from /sitecore/content/Home /sitecore templates

Version Control Examples:

// Get specific version sitecore_get_item({ path: "/sitecore/content/Home", language: "en", version: 2 }) // Get all versions sitecore_get_item_versions({ path: "/sitecore/content/Home", language: "en" }) // Returns: { totalVersions: 5, versions: [...], latestVersion: 5 } // Get item with statistics sitecore_get_item_with_statistics({ path: "/sitecore/content/Home", language: "en" }) // Returns: { created: "20211011T073530Z", createdBy: "sitecore\admin", ... }

Navigation Examples:

// Get parent sitecore_get_parent({ path: "/sitecore/content/Home/Article" }) // Returns: { name: "Home", path: "/sitecore/content/Home", ... } // Get all ancestors (breadcrumb) sitecore_get_ancestors({ path: "/sitecore/content/Home/Article" }) // Returns: { // count: 3, // ancestors: [...], // breadcrumb: "sitecore > content > Home" // }

πŸ“š Docs Map

  • docs/guides/ - Technical guides and implementation details (GUID formats, content discovery, slash commands, etc.)

  • docs/releases/ - Release notes per version (RELEASE-NOTES-v1.x.md)

  • docs/ready-to-ship/ - Release checklists and readiness documents per version

  • docs/status/ - Progress reports and status updates

  • docs/summaries/ - Version summaries and overviews

  • docs/BACKLOG.md - Product backlog and planning

Tip: All documentation is organized under docs/. Root contains only README.md.

πŸ“ Repository Structuur

SitecoreMCP/ β”œβ”€β”€ .github/ # CI/CD workflows en GitHub configuratie β”‚ └── workflows/ β”‚ └── root-scan.yml # Root hygiene enforcement β”‚ β”œβ”€β”€ src/ # TypeScript source code β”‚ β”œβ”€β”€ index.ts # MCP server entry point (11 tools) β”‚ β”œβ”€β”€ sitecore-service.ts # GraphQL client & business logic β”‚ β”œβ”€β”€ sitecore-types.ts # TypeScript type definitions (auto-generated) β”‚ └── sitecore-types-FULL.ts # Extended type definitions β”‚ β”œβ”€β”€ dist/ # Compiled JavaScript (build output) β”‚ β”œβ”€β”€ scripts/ # All scripts organized by category β”‚ β”œβ”€β”€ build/ β”‚ β”‚ └── build-vsix.ps1 # VS Code extension packaging β”‚ β”‚ β”‚ β”œβ”€β”€ schema/ # GraphQL schema management β”‚ β”‚ β”œβ”€β”€ download-schema.ps1 # Download schema from Sitecore β”‚ β”‚ β”œβ”€β”€ download-full-schema.ps1 β”‚ β”‚ β”œβ”€β”€ analyze-schema.ps1 # Analyze schema structure β”‚ β”‚ β”œβ”€β”€ extract-schema-types.ps1 β”‚ β”‚ β”œβ”€β”€ find-mutations.ps1 # Find mutation capabilities β”‚ β”‚ β”œβ”€β”€ generate-types.ps1 # Generate TypeScript types β”‚ β”‚ β”œβ”€β”€ generate-types-full.ps1 β”‚ β”‚ └── check-search-schema.cjs # Validate search schema β”‚ β”‚ β”‚ β”œβ”€β”€ tests/ # Test scripts (72 files) β”‚ β”‚ β”œβ”€β”€ Load-DotEnv.ps1 # Environment loader for tests β”‚ β”‚ β”œβ”€β”€ test-*.ps1 # PowerShell test scripts β”‚ β”‚ └── test-*.cjs # Node.js test scripts β”‚ β”‚ β”‚ β”œβ”€β”€ tools/ # Utility tools β”‚ β”‚ β”œβ”€β”€ build-relationship-graph.ps1 # Build item relationship graphs β”‚ β”‚ β”œβ”€β”€ parse-field-references.ps1 # Parse field references β”‚ β”‚ └── Load-DotEnv.ps1 # Canonical environment loader β”‚ β”‚ β”‚ └── wrappers/ # Backward compatibility wrappers β”‚ β”œβ”€β”€ *.ps1 # PowerShell wrappers (deprecated) β”‚ └── *.cjs # Node.js wrappers (deprecated) β”‚ β”œβ”€β”€ docs/ # All documentation β”‚ β”œβ”€β”€ guides/ # Technical guides (35+ documents) β”‚ β”œβ”€β”€ releases/ # Release notes per version β”‚ β”œβ”€β”€ ready-to-ship/ # Release readiness checklists β”‚ β”œβ”€β”€ status/ # Status and progress reports β”‚ β”œβ”€β”€ summaries/ # Version summaries β”‚ └── BACKLOG.md # Product backlog β”‚ β”œβ”€β”€ data/ # Schema and graph data (generated) β”‚ β”œβ”€β”€ graphql-schema.json # GraphQL schema dump β”‚ β”œβ”€β”€ graphql-schema-full.json # Full introspection result β”‚ └── graph.json # Relationship graph data β”‚ β”œβ”€β”€ .env.example # Environment variabelen template β”œβ”€β”€ package.json # NPM dependencies en scripts β”œβ”€β”€ tsconfig.json # TypeScript compiler configuratie β”œβ”€β”€ LICENSE # MIT licentie └── README.md # Dit bestand (quick start)

Purpose per Directory

Directory

Purpose

Allowed Files

Root

Project metadata and entry point

Config files + README.md only

src/

TypeScript source code

.ts files

dist/

Build output

.js, .d.ts files (generated)

scripts/

All scripts organized

Subdirectories per category

scripts/build/

Build and packaging scripts

build-vsix.ps1

scripts/schema/

GraphQL schema management

Schema tools (9 scripts)

scripts/tests/

Test scripts

Test files (72 files)

scripts/tools/

Utility tools

Helpers and utilities (3 tools)

scripts/wrappers/

Backward compatibility

Deprecated wrappers (11 files)

docs/

All documentation

.md files in subdirectories

data/

Generated data files

.json schema dumps (gitignored)

.github/

CI/CD workflows

GitHub Actions workflows

Hygiene Policy: Root contains ONLY config files and README.md. All documentation is under docs/, all scripts under scripts/. This structure is enforced by CI workflow (root-scan.yml).

βœ… API Status

GraphQL API is active and working!

  • βœ… Item queries

  • βœ… Get children

  • βœ… Get field values

  • βœ… Template information

  • βœ… Variables in queries

Requirements

  • Node.js 18 or higher

  • Sitecore instance with GraphQL endpoint: /sitecore/api/graph/items/master

  • Sitecore API Key (see configuration)

πŸš€ Quick Start

1. Install dependencies

cd c:\gary\Sitecore\SitecoreMCP npm install npm run build

2. Configure Environment

Copy .env.example to .env and configure your Sitecore instance:

SITECORE_HOST=https://your-sitecore-instance.com SITECORE_API_KEY=your-api-key-here

3. Run Tests

Verify that all MCP tools are working correctly:

.\scripts\tests\run-tests.ps1

This will run a comprehensive test suite covering:

  • βœ… Basic queries (item retrieval, children, fields)

  • βœ… Advanced search & discovery

  • βœ… Navigation & hierarchy (parent, ancestors)

  • βœ… Utilities & extensions

Expected output: 17/17 tests passed (100% success rate)

4. Configure your IDE/Tool

Choose your favorite tool and configure the Sitecore MCP server:

Claude Desktop: %APPDATA%\Claude\claude_desktop_config.json VS Code: .vscode/settings.json or User Settings
Rider: %APPDATA%\JetBrains\Rider2024.3\options\mcp-servers.json
Visual Studio: %USERPROFILE%\.github-copilot\mcp-servers.json

See docs/guides/INSTALLATION.md for detailed configuration per tool.

Example configuration (Claude Desktop):

{ "mcpServers": { "sitecore": { "command": "node", "args": ["c:\\gary\\Sitecore\\SitecoreMCP\\dist\\index.js"], "env": { "SITECORE_HOST": "https://your-sitecore-instance.com", "SITECORE_API_KEY": "your-api-key-here" } } } }

For VS Code, Rider and Visual Studio configurations, see docs/guides/INSTALLATION.md.

5. Restart your tool

  • Claude Desktop: Close completely and restart

  • VS Code: Reload Window (Ctrl+Shift+P)

  • Rider: Invalidate Caches & Restart

  • Visual Studio: Close solution and reopen

The Sitecore MCP server should now be available!

πŸ’‘ Gebruik Voorbeelden

Slash Command Menu (New in v1.2.0!)

Step 1: Open your AI chat (Claude Desktop, VS Code Copilot, etc.)
Step 2: Type / to open the slash command menu
Step 3: Choose πŸ”§ /sitecore from the menu
Step 4: Type your command (prefix is automatically added)

# Via slash menu: / β†’ choose /sitecore β†’ "help" / β†’ choose /sitecore β†’ "get item /sitecore/content/Home" / β†’ choose /sitecore β†’ "search articles" / β†’ choose /sitecore β†’ "field Title from /sitecore/content/Home"

Direct Commands

You can also type direct commands:

Get the Home item: /sitecore/content/Home
Show all children of /sitecore/content/Home
Execute this query: /sitecore/content/Home//*[@@templatename='Sample Item']
Search for items with "contact" in the name
What is the Title field of /sitecore/content/Home?

See docs/guides/EXAMPLES.md and docs/guides/SLASH-COMMAND.md for more extensive examples.

Sitecore PowerShell Extensions API

This MCP server uses the Sitecore PowerShell Extensions (SPE) API endpoint:

POST https://your-sitecore-instance.com/sitecore/api/spe/v2/script

Ensure SPE is correctly configured and the API is accessible.

πŸ“š Documentation

For a complete overview of all directories and their purposes, see the πŸ“ Repository Structure section above.

Main documents:

Documentation Structure:

  • docs/guides/ – Technical guides and how-to's (35+ documents)

  • docs/releases/ – Release notes per version (RELEASE-NOTES-v1.x.md)

  • docs/ready-to-ship/ – Release readiness checklists

  • docs/status/ – Status and progress reports

  • docs/summaries/ – Version summaries

Note: All documentation is under docs/. The root contains only README.md. Scripts are under scripts/ in categories (build, schema, tests, tools, wrappers).

πŸ”§ Troubleshooting

MCP server doesn't appear

  • Claude: Check claude_desktop_config.json syntax β†’ Restart app

  • VS Code: Reload Window (Ctrl+Shift+P) β†’ Check Output panel

  • Rider: Invalidate Caches β†’ Check Event Log

  • Visual Studio: Restart as Administrator β†’ Check Extension logs

SPE API errors

  • Run .\test-spe-api.ps1 to test the API

  • Verify that SPE remoting is enabled in Spe.config

  • Check Sitecore logs: https://your-sitecore-instance.com/sitecore/admin/showlog.aspx

Items not found

  • Verify that the path exists (case-sensitive!)

  • Verify database (master/web/core)

  • Check language code (en/nl/etc.)

For more details, see docs/guides/INSTALLATION.md.

⚠️ Security

Warning: This configuration is intended for LOCAL development!

For production environments:

  • βœ… Use HTTPS with valid certificate

  • βœ… No credentials in configuration files

  • βœ… Use Sitecore API keys

  • βœ… Restrict SPE permissions

  • βœ… Enable SSL certificate verification

🀝 Contributing

Suggestions and improvements are welcome! Create an issue or submit a pull request.

πŸ“„ License

MIT

-
security - not tested
A
license - permissive license
-
quality - not tested

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/GaryWenneker/SitecoreMCP'

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