Skip to main content
Glama
phasetdev

Phaset Manifest Generator MCP

Official
by phasetdev

Phaset Manifest Generator MCP

AI-assisted Phaset manifest generation using Model Context Protocol.

A minimal MCP server that leverages Claude's intelligence to generate phaset.manifest.json files by analyzing your repository.

This may or may not work with other MCP-compatible tools, such as ChatGPT, but no testing has been done for anything other than Claude.

Quick Start

Prerequisites

You will need to have Node.js installed.

Configuration

Claude Desktop

(macOS): Edit ~/Library/Application Support/Claude/claude_desktop_config.json

(Windows): Edit %APPDATA%\Claude\claude_desktop_config.json

Add:

{
  "mcpServers": {
    "phaset": {
      "command": "npx",
      "args": ["-y", "phaset-mcp"]
    }
  }
}

Restart Claude Desktop completely.

Claude Code

Add the below to .claude.json:

{
  "mcpServers": {
    "phaset": {
      "command": "npx",
      "args": ["-y", "phaset-mcp"]
    }
  }
}

CLI

Run:

claude mcp add phaset -- npx -y phaset-mcp

Usage

In Claude Desktop:

Generate a Phaset manifest for /path/to/your/project

Claude will:

  1. Collect relevant files (package.json, README, Dockerfile, etc.)

  2. Analyze your project structure

  3. Generate a manifest with confidence annotations

  4. Mark fields requiring manual input as TODO

Key Features

  • 100% Phaset Compliant: Generated manifests strictly conform to the Phaset schema

  • Smart analysis: Leverages Claude's native understanding of code and configs

  • Helpful notes: Inference notes are presented as complementary text

  • Multiple depth levels: Choose minimal, standard, or deep file analysis

  • Language agnostic: Works with any language Claude understands

Available Tools

get_phaset_schema

Returns the Phaset integration API schema so Claude understands the manifest structure.

collect_repo_files

Intelligently gathers relevant files from a repository based on depth:

  • minimal: Package manifests and README only

  • standard: Adds Dockerfiles, CI/CD configs, API specs

  • deep: Includes infrastructure configs (Terraform, Kubernetes)

suggest_manifest

Orchestrates the full workflow: retrieves schema, collects files, and generates a complete manifest draft.

Architecture

┌─────────────────┐
│   User's IDE    │
│   (Claude Code) │
└────────┬────────┘
         │
         ▼
┌──────────────────────────┐
│ Phaset MCP Server        │
│ • get_phaset_schema()    │
│ • collect_repo_files()   │
│ • suggest_manifest()     │
└────────┬─────────────────┘
         │
         ▼
┌──────────────────────────┐
│ Claude (via MCP)         │
│ • Analyzes files         │
│ • Generates manifest     │
│ • Provides confidence    │
└──────────────────────────┘

What Gets Generated

High Confidence Fields ✅

Claude can reliably infer:

  • name, description, version (from package files)

  • kind (api/service/library/component)

  • sourcingModel (custom vs open source)

  • deploymentModel (cloud/saas/on-premises)

  • tags (detected languages and frameworks)

  • api definitions (from OpenAPI/Swagger specs)

  • External dependencies

Requires Manual Input ⚠️

Fields marked as TODO:

  • repo (your Phaset org/record format)

  • group, system, domain (organizational IDs)

  • dataSensitivity, businessCriticality (business decisions)

  • dependencies.target (Phaset Record IDs)

  • slo, baseline, metadata

Example Output

The generated response includes two parts: a valid JSON manifest and separate inference notes.

Manifest

{
  "spec": {
    "repo": "TODO: YOUR_ORG/YOUR_RECORD_ID",
    "name": "user-api",
    "description": "RESTful API for user management",
    "kind": "api",
    "lifecycleStage": "production",
    "version": "2.3.1",
    "group": "TODO: 8-CHAR-ID",
    "dataSensitivity": "TODO: MANUAL",
    "sourcingModel": "custom",
    "deploymentModel": "public_cloud"
  },
  "tags": ["typescript", "express", "postgresql", "rest-api"],
  "api": [
    {
      "name": "User API",
      "schemaPath": "TODO: PUBLIC_URL_TO_SCHEMA"
    }
  ]
}

Inference Notes (Presented as Text)

  • spec.name: HIGH - Found in package.json

  • spec.description: HIGH - Extracted from README.md

  • spec.kind: HIGH - Identified as API based on OpenAPI spec and REST endpoints

  • spec.version: HIGH - Found in package.json

  • spec.lifecycleStage: MEDIUM - Inferred from production Docker configuration

  • spec.repo: MANUAL - Organization/Record ID format required

  • spec.group: MANUAL - Cannot determine organizational group ID

  • spec.dataSensitivity: MANUAL - Requires business decision

  • spec.sourcingModel: HIGH - Custom development evident from repository structure

  • spec.deploymentModel: MEDIUM - Inferred from Kubernetes configurations

  • tags: HIGH - Detected from package.json dependencies and file types

  • api.name: HIGH - From OpenAPI spec title

  • api.schemaPath: MANUAL - Needs public URL for hosted schema

Tips for Best Results

  1. Keep READMEs updated - Claude extracts descriptions from documentation

  2. Use standard files - package.json, Dockerfile, etc. are automatically detected

  3. Document APIs - Include OpenAPI/Swagger specs for API detection

  4. Provide CODEOWNERS - Helps identify contacts

  5. More files = better inference - Use "deep" analysis for comprehensive results

License

MIT. See the LICENSE file.

Install Server
A
license - permissive license
A
quality
C
maintenance

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

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/phasetdev/phaset-mcp'

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