{"name":"io.github.NomaCMS/nomacms-mcp-server","slug":"nomacms-nomacms-mcp-server","title":"NomaCMS MCP Server","description":"MCP server for NomaCMS. Manage collections, fields, content, assets, and webhooks via AI agents.","url":"https://mcp.market/server/nomacms-nomacms-mcp-server","rating":null,"grade":"B","score":77,"certified":false,"status":"active","category":"other","tags":[],"presence":{"score":24,"stars":1,"forks":0,"downloads_week":42,"last_push_at":"2026-07-15T18:24:48.000Z","license":"MIT"},"uptime":null,"claimed":false,"transport":"npm","callable_via_gateway":false,"default_price_micros":0,"repository":"https://github.com/NomaCMS/nomacms-mcp-server","website":"https://nomacms.com/documentation/mcp-server/setup","version":"1.2.2","remotes":[],"packages":[{"registryType":"npm","registryBaseUrl":"https://registry.npmjs.org","identifier":"@nomacms/mcp-server","version":"1.2.2","transport":{"type":"stdio"},"environmentVariables":[{"description":"NomaCMS personal access token from User Settings → API Keys","isRequired":true,"isSecret":true,"name":"NOMA_API_KEY"},{"description":"NomaCMS project UUID from Project Settings → API Access","isRequired":true,"name":"NOMA_PROJECT_ID"}]}],"tools":[{"name":"add_project_locale","description":"Add a locale code (e.g. tr, es) to the project. Requires admin API ability. Codes are lowercased. Call when setting up a multilingual site before creating translated content.","write_action":false,"price_micros":0,"input_schema":null},{"name":"bulk_create_entries","description":"Create multiple content entries atomically. If one item fails, the whole request is rolled back.","write_action":true,"price_micros":0,"input_schema":null},{"name":"bulk_delete_entries","description":"Delete multiple content entries atomically by UUID. If one delete fails, no entries are deleted.","write_action":true,"price_micros":0,"input_schema":null},{"name":"bulk_update_asset_metadata","description":"Update metadata for multiple assets atomically by UUID. If one item fails, all updates are rolled back.","write_action":true,"price_micros":0,"input_schema":null},{"name":"bulk_update_entries","description":"Update multiple content entries atomically by UUID. If one item fails, all updates are rolled back.","write_action":true,"price_micros":0,"input_schema":null},{"name":"bulk_upload_assets","description":"Upload multiple local files as assets atomically. If one upload fails, all uploads are rolled back.","write_action":true,"price_micros":0,"input_schema":null},{"name":"create_collection","description":"Create a new collection. Optionally include field definitions to create the collection with its full schema in a single request.","write_action":true,"price_micros":0,"input_schema":null},{"name":"create_entry","description":"Create a new content entry in a collection","write_action":true,"price_micros":0,"input_schema":null},{"name":"create_field","description":"Add a new field to a collection","write_action":true,"price_micros":0,"input_schema":null},{"name":"create_webhook","description":"Create a webhook for content and auth events","write_action":true,"price_micros":0,"input_schema":null},{"name":"delete_asset","description":"Delete an asset by UUID","write_action":true,"price_micros":0,"input_schema":null},{"name":"delete_entry","description":"Soft-delete a content entry (moves to trash). Can be restored from the admin panel.","write_action":true,"price_micros":0,"input_schema":null},{"name":"delete_webhook","description":"Delete a webhook by UUID","write_action":true,"price_micros":0,"input_schema":null},{"name":"get_asset","description":"Get an asset by its UUID or by filename.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_collection","description":"Get a single collection with its full field schema by slug","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_entry","description":"Get a single content entry by UUID. Response includes uuid, locale, published_at, and a `fields` object (custom field values — not a nested `data` key).","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_entry_version","description":"Fetch a single version's metadata and raw snapshot payload. The snapshot contains the saved field values in restoration format; for API-rendered content use `get_entry` with state='published'.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_project","description":"Get information about the current Noma project (name, uuid, default_locale, locales, etc.)","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_webhook","description":"Get a webhook by UUID","write_action":false,"price_micros":0,"input_schema":null},{"name":"link_entry_translation","description":"Merge two entries in the same collection into one translation group (same as dashboard “link translation”).","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_assets","description":"List assets in the project with optional pagination.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_collections","description":"List all collections in the project","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_entries","description":"List content entries for a collection with advanced filtering, sorting, and pagination.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_entry_versions","description":"List all published versions for a content entry (newest first). Each version is an immutable snapshot taken at publish time.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_webhook_logs","description":"List delivery logs for a webhook","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_webhooks","description":"List all webhooks configured for the current project","write_action":false,"price_micros":0,"input_schema":null},{"name":"patch_entry","description":"Partially update a content entry (HTTP PATCH). Only include fields you want to change (e.g. relations, one field).","write_action":true,"price_micros":0,"input_schema":null},{"name":"publish_entry","description":"Mint a new immutable version from the entry's current draft and make it the live published version.","write_action":true,"price_micros":0,"input_schema":null},{"name":"reorder_collections","description":"Update the display order of collections","write_action":true,"price_micros":0,"input_schema":null},{"name":"reorder_fields","description":"Update the display order of fields within a collection","write_action":true,"price_micros":0,"input_schema":null},{"name":"revert_entry_version","description":"Restore the draft to a previous version's snapshot and publish it as a new version. The current unpublished draft is replaced.","write_action":false,"price_micros":0,"input_schema":null},{"name":"set_default_project_locale","description":"Set the project's default locale. Adds the locale to the list if it was missing. Requires admin API ability.","write_action":false,"price_micros":0,"input_schema":null},{"name":"unpublish_entry","description":"Clear the live published pointer for an entry. The entry becomes invisible under state=published in the public API, but all historical versions are retained and still accessible via `list_entry_versions` / `get_entry_version`.","write_action":false,"price_micros":0,"input_schema":null},{"name":"update_collection","description":"Update the name and slug of an existing collection","write_action":true,"price_micros":0,"input_schema":null},{"name":"update_entry","description":"Replace an existing content entry (HTTP PUT). Sends the full `data` payload; required fields (e.g. title, slug) must be included.","write_action":true,"price_micros":0,"input_schema":null},{"name":"update_entry_version_label","description":"Update a version's editable label and/or description. The snapshot payload itself is immutable.","write_action":true,"price_micros":0,"input_schema":null},{"name":"update_field","description":"Update an existing field on a collection","write_action":true,"price_micros":0,"input_schema":null},{"name":"update_webhook","description":"Update a webhook by UUID","write_action":true,"price_micros":0,"input_schema":null},{"name":"upload_asset","description":"Upload a local file as an asset. Provide the absolute file path.","write_action":true,"price_micros":0,"input_schema":null}],"scan":{"score":77,"grade":"B","scanned_at":"2026-09-25T21:44:35.953Z","report":{"scannerVersion":"0.1.9","scannedAt":"2026-09-25T21:44:35.927Z","components":{"code":{"score":25,"max":25,"notes":["19 source files scanned"]},"reliability":{"score":-1,"max":20,"notes":["no gateway calls yet and no remote to probe"]},"poisoning":{"score":-1,"max":15,"notes":["tools not inspected (local package is not executed); not counted"]},"auth":{"score":6,"max":15,"notes":["static API keys via environment variables"]},"maintenance":{"score":12,"max":15,"notes":["last push 72 days ago"]},"identity":{"score":7,"max":10,"notes":["registry namespace matches repository owner"]}},"findings":[],"inputs":{"packages":[{"registryType":"npm","identifier":"@nomacms/mcp-server","version":"1.2.2","found":true,"license":"MIT","hasInstallScripts":false,"dependencyCount":2,"publishedAt":"2026-07-15T18:26:16.982Z","repositoryUrl":"git+https://github.com/NomaCMS/nomacms-mcp-server.git","weeklyDownloads":42}],"repo":{"found":true,"owner":"NomaCMS","repo":"nomacms-mcp-server","archived":false,"pushedAt":"2026-07-15T18:24:48Z","stars":1,"forks":0,"openIssues":0,"ownerType":"Organization","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/269759634?v=4","ownerCreatedAt":"2026-03-20T15:35:03Z","license":"MIT"},"icon":{"url":"https://avatars.githubusercontent.com/u/269759634?v=4&s=128","source":"github"},"presence":{"stars":1,"forks":0,"downloadsWeek":42,"license":"MIT","lastPushAt":"2026-07-15T18:24:48.000Z","score":24}}}},"grade_history":[],"reviews":[]}