Features MCP Reference

Overview

This page documents the Features MCP tools for direct integration with the gloria.dev MCP server. It does not cover everyday agent workflows — for that, see Features Skill Reference. All calls run in the caller’s active organization. For the broader product surface, see Features and MCP Tools.

put_feature

Purpose: Create or update one feature record in a project.

NameTypeRequiredDescription
projectSlugstringYesProject slug.
featureFeatureDefinitionSchemaYesFeature definition to upsert.

Behavior:

  • Requires inventory:write.
  • Returns 403 when access is denied and 404 when the organization or project is missing.
  • Creates or updates the feature selected by slug.
  • Requires structured details on every feature payload.
  • Requires screenshots on every feature payload.
  • Rejects notes in sync payloads.
  • Rejects unknown fields because the schema is strict.
{
  "projectSlug": "acme-api",
  "feature": {
    "slug": "csv-export",
    "name": "CSV export",
    "description": "Download any report as a CSV file.",
    "layer": "reporting",
    "userFacing": true,
    "aliases": ["download as csv", "export to spreadsheet"],
    "details": [],
    "files": ["src/export/csv.ts"],
    "symbols": ["exportCsv"],
    "docUrls": [],
    "screenshots": [],
    "analyzedCommit": "<git rev-parse HEAD>"
  }
}

get_feature

Purpose: Return full detail for one feature.

NameTypeRequiredDescription
projectSlugstringYesProject slug.
slugstringYesFeature slug.

Behavior:

  • Requires inventory:read.
  • Returns 403 when access is denied and 404 when the organization, project, or feature is missing.
  • Returns the full stored record, including structured details, screenshots, full notes, files, symbols, docUrls, and timestamps.
{
  "projectSlug": "acme-api",
  "slug": "csv-export"
}

Example response:

{
  "slug": "csv-export",
  "name": "CSV export",
  "description": "Download any report as a CSV file.",
  "layer": "reporting",
  "userFacing": true,
  "aliases": ["download as csv", "export to spreadsheet"],
  "details": [],
  "files": ["src/export/csv.ts"],
  "symbols": ["exportCsv"],
  "docUrls": [],
  "screenshots": [],
  "notes": [],
  "analyzedCommit": "<git rev-parse HEAD>",
  "createdAt": "2026-07-10T12:00:00.000Z",
  "updatedAt": "2026-07-13T09:30:00.000Z"
}

list_features

Purpose: List compact feature summaries for one project.

NameTypeRequiredDescription
projectSlugstringYesProject slug.

Behavior:

  • Requires inventory:read.
  • Returns 403 when access is denied and 404 when the organization or project is missing.
  • Stays intentionally compact. It returns summary rows only: slug, name, description, layer, userFacing, and aliases.
  • Does not return details, screenshots, or notes. Call get_feature for the full record.
  • Includes analyzedCommit, taken from the most recently updated feature row.
{
  "projectSlug": "acme-api"
}

upload_feature_screenshot

Purpose: Upload one screenshot and return the screenshot reference to store later in feature.screenshots.

NameTypeRequiredDescription
projectSlugstringYesProject slug.
screenshotobjectYesOne screenshot upload payload.

Behavior:

  • Requires inventory:write.
  • Returns 403 when access is denied and 404 when the organization or project is missing.
  • Uploads one screenshot and returns the screenshot reference object.
  • Does not update a feature record on its own. Store the returned object in a later put_feature call.

delete_feature

Purpose: Remove one feature from a project.

NameTypeRequiredDescription
projectSlugstringYesProject slug.
slugstringYesFeature slug.

Behavior:

  • Requires inventory:write.
  • Returns 403 when access is denied and 404 when the organization or project is missing.
  • Is idempotent.
  • Cleans up stored screenshots linked to the feature.
  • Reports whether it removed a record.
{
  "projectSlug": "acme-api",
  "slug": "csv-export"
}

Feature shapes

FeatureDefinition

FieldTypeDescription
slugstringKebab-case feature identifier.
namestringUser-facing feature name.
descriptionstringShort end-user description.
layerstringOwning product layer.
userFacingbooleanWhether end users interact with it directly.
aliasesstring[]Alternate phrases users may say.
detailsobject[]Structured detail records stored with the feature.
filesstring[]Implementing file paths.
symbolsstring[]Implementing exported symbols.
docUrlsstring[]Related documentation page URLs.
screenshotsobject[]Screenshot references for the feature. Send [] when none exist yet.
analyzedCommitstringThe HEAD SHA used for the scan.

The schema is strict and rejects unknown fields. Every payload must include screenshots, even when it is empty. Sync payloads must not include notes, so dashboard authored notes stay protected.

FeatureIndexEntry

list_features returns this compact summary shape. It carries the summary fields documented in the list_features section, and the response also includes the newest analyzedCommit for the project.

FeatureDetail

get_feature and put_feature return this stored record. It uses the full FeatureDefinition shape and adds full notes, createdAt, and updatedAt.

FeatureScreenshot

upload_feature_screenshot returns this screenshot reference shape. FeatureDefinition.screenshots accepts the same object. Preserve the returned fields exactly as received when storing or replaying a feature record.

Domain model

For field-level detail on project and feature storage, see Domain Model.