Command Palette

Search for a command to run...

UnylyUnyly
Весь каталог

SitefinityMCP

БесплатноНе проверен

Enables AI clients to read and query content from a Progress Sitefinity CMS instance via its OData API. Tools are dynamically generated from the live service me

GitHubEmbed

Описание

Enables AI clients to read and query content from a Progress Sitefinity CMS instance via its OData API. Tools are dynamically generated from the live service metadata, supporting filtering, searching, and navigation across content types.

README

A zero-dependency Model Context Protocol server that lets AI clients read and query content from a Progress Sitefinity CMS instance through its REST (OData) Web Services API.

The tool surface is generated from the live service: at startup the server fetches the OData $metadata, parses every entity set and its fields, and bakes the discovered type names into the tools. Point it at any Sitefinity site and it adapts to that site's content model.

  • No npm dependencies — runs on plain Node.js (built-ins only). Nothing to install.
  • Two transports — Streamable HTTP (for hosting) and stdio (for local clients).
  • Read-only — every tool issues GET requests.
  • Live web explorer — the same server hosts an interactive UI that exercises every tool.

Default target: https://sta.eftm2.cloud.sitefinity.com/api/default/ Live deployment:

Web explorer

Open the deployment root in a browser for a single-page app (served from public/ by the same Node process) that showcases the whole server:

  • Dashboard — live capability cards generated from tools/list, plus stats.
  • Assistant (optional) — ask in plain English; Claude answers by calling the MCP tools live (enable with ANTHROPIC_API_KEY).
  • Content Library — all discovered content types; click one for its full field schema, expandable relations, and a live sample of items.
  • Query Builder — compose OData queries (filter/select/orderby/paging/expand).
  • Search — free-text contains() search rendered as cards.
  • Tool Playground — auto-generated forms for every tool, built from each tool's input schema, with the exact JSON-RPC request/response shown.
  • Wire log — a drawer streaming every JSON-RPC message on the wire.

No build step — it's vanilla HTML/CSS/JS.

Tools

All tool input schemas include a type enum populated from the live service (39 content types on the default target, including custom dynamic types like corporatefooditems, testimonials, people).

Tool What it does Sitefinity API
sitefinity_list_content_types List every content type with its fields & relations service $metadata
sitefinity_describe_type Full field + navigation list for one type $metadata
sitefinity_query_items Query a collection (filter/select/orderby/paging/expand/count) GET /{type}
sitefinity_get_item Fetch one item by GUID GET /{type}(id)
sitefinity_search_items Free-text contains() search across fields GET /{type}?$filter=
sitefinity_count_items Count items matching a filter GET /{type}/$count
sitefinity_get_related Related items via a navigation field GET /{type}(id)/{field}
sitefinity_get_metadata Entity-set names (+ raw XML) GET /$metadata
sitefinity_raw_get Arbitrary OData GET escape hatch GET /{path}

OData query support

$filter supports eq, ne, gt, lt, ge, le, and, or, not, contains(), startswith(), endswith(). Sitefinity params sf_culture, sf_site, sf_provider are exposed as the culture, site, provider args.

Configuration

All via environment variables (see .env.example).

Variable Default Notes
SITEFINITY_BASE_URL https://sta.eftm2.cloud.sitefinity.com Site origin
SITEFINITY_SERVICE_NAME default OData service name
SITEFINITY_AUTH_MODE anonymous anonymous or password
SITEFINITY_USERNAME / SITEFINITY_PASSWORD Required when password
SITEFINITY_CLIENT_ID / SITEFINITY_CLIENT_SECRET sitefinity / — OAuth client
SITEFINITY_DEFAULT_CULTURE / SITEFINITY_SITE_ID Applied to every request
MCP_TRANSPORT http http or stdio
HOST / PORT 0.0.0.0 / 8080 HTTP transport bind
ANTHROPIC_API_KEY Enables the AI Assistant (server-side secret)
ANTHROPIC_MODEL claude-opus-4-8 Model for the Assistant

AI Assistant

The optional Assistant turns natural-language questions into live MCP tool calls (Claude runs an agentic tool-use loop over this server's own tools). It's off until you provide a key. The key is a server-side secret — it never appears in the repo or reaches the browser; /api/info only exposes an aiEnabled boolean. On Fly:

fly secrets set ANTHROPIC_API_KEY=sk-ant-...   # auto-restarts the app

Auth. Public content is anonymous. For protected content set SITEFINITY_AUTH_MODE=password; the server runs the OAuth2 password grant against {baseUrl}/sitefinity/oauth/token and caches/refreshes the token.

Run locally

No install step — there are no dependencies.

# HTTP transport (default)
node src/index.js
# → POST JSON-RPC to http://localhost:8080/mcp

# stdio transport (for local MCP clients)
MCP_TRANSPORT=stdio node src/index.js

Smoke test the HTTP transport:

curl -s http://localhost:8080/mcp -H 'Content-Type: application/json' \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'

Use with an MCP client

Hosted (HTTP)

Point any Streamable-HTTP MCP client at the deployed endpoint:

https://sitefinity-mcp-eftm2.fly.dev/mcp

Local (stdio) — e.g. Claude Desktop

{
  "mcpServers": {
    "sitefinity": {
      "command": "node",
      "args": ["/absolute/path/to/SitefinityMCP/src/index.js"],
      "env": { "MCP_TRANSPORT": "stdio" }
    }
  }
}

Then ask: "List the Sitefinity content types", "Find news items containing 'meal', newest first", "How many newsitems are there?".

Deploy to Fly.io

fly launch --no-deploy   # or use the committed fly.toml
fly deploy

The Dockerfile copies the source and runs node src/index.js — no build or install step. Health checks hit /health.

HTTP endpoints

Method Path Purpose
GET / Web explorer UI
POST /mcp JSON-RPC 2.0 MCP messages
POST /api/chat AI assistant (when ANTHROPIC_API_KEY is set)
GET /health Liveness probe
GET /api/info Server info (JSON, incl. aiEnabled)

Project layout

src/
  config.js      Environment-driven configuration
  odata.js       OData query-string builder + filter helpers
  metadata.js    Dependency-free $metadata (CSDL/XML) parser
  sitefinity.js  REST client (auth, requests, live introspection)
  tools.js       MCP tools, generated from the live schema
  mcp.js         JSON-RPC 2.0 protocol handler
  http.js        Streamable HTTP transport (+ serves the web UI + /api/chat)
  static.js      Path-traversal-safe static file handler
  stdio.js       stdio transport
  anthropic.js   Zero-dep Anthropic client + agentic tool-use loop
  chat.js        AI assistant handler (bridges MCP tools to Claude)
  index.js       Entry point
public/
  index.html     Web explorer markup
  styles.css     Web explorer styles
  app.js         Web explorer logic (vanilla ES module)
Dockerfile       Container image (no install step)
fly.toml         Fly.io deployment config

License

MIT

from github.com/jaysanderson/SitefinityMCP

Установить SitefinityMCP в Claude Desktop, Claude Code, Cursor

Рекомендуется · одна команда, все IDE
unyly install sitefinitymcp

Ставит в Claude Desktop, Claude Code, Cursor и VS Code — сам разбирается с npx, uvx и сборкой из исходников.

Впервые? Поставь CLI: curl -fsSL https://unyly.org/install | sh

Или настроить вручную

Выполни в терминале:

claude mcp add sitefinitymcp -- npx -y github:jaysanderson/SitefinityMCP

FAQ

SitefinityMCP MCP бесплатный?

Да, SitefinityMCP MCP бесплатный — установка в пару кликов через Unyly без оплаты.

Нужен ли API-ключ для SitefinityMCP?

Нет, SitefinityMCP работает без API-ключей и переменных окружения.

SitefinityMCP — hosted или self-hosted?

Self-hosted: сервер запускается локально на твоей машине командой из раздела установки.

Как установить SitefinityMCP в Claude Desktop, Claude Code или Cursor?

Открой SitefinityMCP на unyly.org, выбери вкладку своего клиента (Claude Desktop, Claude Code, Cursor) и нажми Install — конфиг сгенерируется автоматически, без правки JSON.

Похожие MCP

Compare SitefinityMCP with

Не уверен что выбрать?

Найди свой стек за 60 секунд

Автор?

Embed-бейдж для README

Похожее

Все в категории ai