Skip to content

feat: add StandupCraft and StatusCraft MCP server manifests - #354

Open
jabbawocky wants to merge 1 commit into
pathintegral-institute:mainfrom
jabbawocky:add-standupcraft-statuscraft
Open

feat: add StandupCraft and StatusCraft MCP server manifests#354
jabbawocky wants to merge 1 commit into
pathintegral-institute:mainfrom
jabbawocky:add-standupcraft-statuscraft

Conversation

@jabbawocky

@jabbawocky jabbawocky commented Jun 20, 2026

Copy link
Copy Markdown

Adds two free MCP servers to the registry:

StandupCraft (standupcraft)

  • Reads git commits + GitHub activity to generate daily standups, weekly client reports, and sprint retros inside Claude Desktop
  • No API key required, runs locally
  • GitHub: https://github.com/jabbawocky/standupcraft
  • Install: npx -y github:jabbawocky/standupcraft

StatusCraft (statuscraft)

  • Real-time status monitoring for 141 major services (AWS, GitHub, Stripe, Cloudflare, Anthropic, OpenAI, etc.)
  • Ask Claude "is GitHub down?" and get a live answer with full incident detail
  • No API key required, runs locally
  • GitHub: https://github.com/jabbawocky/statuscraft
  • Install: npx -y github:jabbawocky/statuscraft

Both are MIT licensed, free, and can be run with a single npx command — no global install needed.

Summary by CodeRabbit

Release Notes

  • New Features
    • Registered StandupCraft MCP server to help teams generate standup summaries and detailed reports with flexible date ranges, supporting both client-specific reports and sprint retrospectives
    • Registered StatusCraft MCP server to monitor system health by checking individual and multiple service statuses and maintaining a complete inventory of all services

Copilot AI review requested due to automatic review settings June 20, 2026 12:34
@coderabbitai

coderabbitai Bot commented Jun 20, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

📝 Walkthrough

Walkthrough

Two new MCP server registry entries are added: standupcraft.json registers a standup/report generation server with two tools (generate_standup, generate_report) and optional environment variables; statuscraft.json registers a service-status checking server with three tools (get_status, check_multiple, list_services). Both files follow the existing registry manifest schema.

Changes

New MCP Registry Server Entries

Layer / File(s) Summary
StandupCraft registry entry
mcp-registry/servers/standupcraft.json
Adds complete manifest: server identity and taxonomy, npx installation with optional GITHUB_TOKEN/REPOS_DIR env vars, three example prompts, and two tool definitions (generate_standup with optional date; generate_report with start_date, end_date, report_type). Sets prompts/resources to empty arrays and is_official to false.
StatusCraft registry entry
mcp-registry/servers/statuscraft.json
Adds complete manifest: server identity and taxonomy, npx installation config, example prompts, and three tool definitions (get_status, check_multiple, list_services) with JSON-schema input shapes. Sets prompts/resources to empty arrays and is_official to false.

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~5 minutes

Suggested labels

Review effort 2/5, released

Poem

🐇 Two new servers hop into the registry today,
StandupCraft crafts standups without delay,
StatusCraft checks if your services are green,
The neatest JSON manifests I've ever seen!
With tools and prompts lined up in a row,
Into the registry garden they merrily go! 🌿

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately and concisely summarizes the main change: adding two new MCP server manifests (StandupCraft and StatusCraft) to the registry.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@qodo-code-review

Copy link
Copy Markdown
Contributor

PR Summary by Qodo

Add StandupCraft and StatusCraft MCP server manifests to registry
✨ Enhancement ⚙️ Configuration changes 🕐 Less than 10 minutes

Grey Divider

Description

• Add StandupCraft manifest for local standups/reports from git + optional GitHub activity.
• Add StatusCraft manifest for live status checks across 141 services via official status pages.
• Document npx-based installation, example prompts, and tool schemas for both servers.
Diagram

graph TD
  A["standupcraft.json"] --> C["MCP Registry"] --> D["MCP Client (Claude Desktop)"] --> E["npx runs GitHub repo"]
  B["statuscraft.json"] --> C
Loading
High-Level Assessment

Adding standalone manifest files per server is consistent with typical registry patterns and keeps each server’s metadata self-contained (install, examples, tools, env). The main thing to double-check is conformance to the registry’s expected JSON schema/required fields (if any), but structurally this approach is already the simplest and most maintainable.

Files changed (2) +204 / -0

Other (2) +204 / -0
standupcraft.jsonAdd StandupCraft server manifest (git/GitHub standups & reports) +103/-0

Add StandupCraft server manifest (git/GitHub standups & reports)

• Introduces the StandupCraft MCP server entry, including repository/homepage metadata, MIT license, categories/tags, and an npx install command. Defines optional environment variables (GITHUB_TOKEN, REPOS_DIR), example prompts, and tool schemas for generating standups and reports.

mcp-registry/servers/standupcraft.json

statuscraft.jsonAdd StatusCraft server manifest (real-time service status monitoring) +101/-0

Add StatusCraft server manifest (real-time service status monitoring)

• Introduces the StatusCraft MCP server entry with repository metadata, MIT license, categories/tags, and an npx install command. Provides example prompts and tool schemas for checking single/multiple services and listing tracked services.

mcp-registry/servers/statuscraft.json

@qodo-code-review

Copy link
Copy Markdown
Contributor

Code Review by Qodo

🐞 Bugs (2) 📘 Rule violations (0) 📜 Skill insights (0)

Grey Divider


Action required

1. Invalid env map values 🐞 Bug ≡ Correctness
Description
standupcraft.json defines installations.npm.env values as objects containing
description/required, but the schema and runtime config expect env to be a string -> string
map, so validation/parsing will fail.
Code

mcp-registry/servers/standupcraft.json[R35-44]

+      "env": {
+        "GITHUB_TOKEN": {
+          "description": "GitHub personal access token for fetching GitHub activity (optional — git activity works without it)",
+          "required": false
+        },
+        "REPOS_DIR": {
+          "description": "Directory to scan for git repositories (default: home directory)",
+          "required": false
+        }
+      }
Evidence
The manifest sets env values to objects, but both the JSON schema and the runtime model require
env values to be strings, so the manifest cannot validate or be safely consumed.

mcp-registry/servers/standupcraft.json[26-45]
mcp-registry/schema/server-schema.json[268-274]
src/mcpm/core/schema.py[29-33]
scripts/validate_manifest.py[32-46]

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

## Issue description
`mcp-registry/servers/standupcraft.json` sets `installations.npm.env.GITHUB_TOKEN` and `installations.npm.env.REPOS_DIR` to objects (with `description` and `required`). The registry schema requires `installations.*.env` to be an object whose values are strings.

## Issue Context
- `mcp-registry/schema/server-schema.json` defines `installations.*.env` as `additionalProperties: { "type": "string" }`.
- MCPM runtime config parsing also models env as `Dict[str, str]`.
- Other manifests put variable metadata under top-level `arguments` and keep `installations.*.env` as placeholder string mappings.

## Fix Focus Areas
- mcp-registry/servers/standupcraft.json[26-46]
- mcp-registry/schema/server-schema.json[214-274]
- src/mcpm/core/schema.py[29-33]

## Suggested change shape
- Add a top-level `arguments` object:
 - `GITHUB_TOKEN`: { description, required: false, example }
 - `REPOS_DIR`: { description, required: false, example }
- Change `installations.npm.env` to string placeholders (or omit entirely if truly unused):
 - `"env": { "GITHUB_TOKEN": "${GITHUB_TOKEN}", "REPOS_DIR": "${REPOS_DIR}" }`

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools


2. Invalid categories values 🐞 Bug ≡ Correctness
Description
statuscraft.json and standupcraft.json use category strings (including "Monitoring" and
"Developer Tools") that are not allowed by the registry schema’s enumerated category list, so
JSON-schema validation will fail and these manifests will be rejected.
Code

mcp-registry/servers/statuscraft.json[14]

+  "categories": ["Monitoring", "Developer Tools"],
Evidence
Both manifests include category values that are not present in
mcp-registry/schema/server-schema.json’s categories[].enum list (e.g., the schema expects
specific strings such as "Dev Tools" rather than "Developer Tools"). The repository’s validation
script (scripts/validate_manifest.py) enforces this schema via JSON Schema validation for server
JSON files, so any manifest using a category outside the enum fails validation and is rejected.

mcp-registry/servers/statuscraft.json[13-15]
mcp-registry/schema/server-schema.json[70-89]
scripts/validate_manifest.py[32-46]
mcp-registry/servers/standupcraft.json[13-15]
mcp-registry/README.md[56-65]

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

## Issue description
`mcp-registry/servers/statuscraft.json` and `mcp-registry/servers/standupcraft.json` set `categories` to values that are not permitted by the enumerated category strings in `mcp-registry/schema/server-schema.json` (notably including "Monitoring" and "Developer Tools"), which causes JSON-schema validation to fail and the manifests to be rejected.

## Issue Context
The repo’s schema validation (`scripts/validate_manifest.py`) enforces `mcp-registry/schema/server-schema.json` (via `jsonschema.validate(...)`) for server JSON files; any `categories` entry not present in the schema’s `categories[].enum` list causes validation failure. The current category values in these manifests include strings that are not in that enum (for example, the schema expects "Dev Tools" rather than "Developer Tools").

## Fix Focus Areas
- mcp-registry/servers/statuscraft.json[13-15]
- mcp-registry/servers/standupcraft.json[13-15]
- mcp-registry/schema/server-schema.json[70-89]

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools


Grey Divider

Qodo Logo

Comment on lines +35 to +44
"env": {
"GITHUB_TOKEN": {
"description": "GitHub personal access token for fetching GitHub activity (optional — git activity works without it)",
"required": false
},
"REPOS_DIR": {
"description": "Directory to scan for git repositories (default: home directory)",
"required": false
}
}

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Action required

1. Invalid env map values 🐞 Bug ≡ Correctness

standupcraft.json defines installations.npm.env values as objects containing
description/required, but the schema and runtime config expect env to be a string -> string
map, so validation/parsing will fail.
Agent Prompt
## Issue description
`mcp-registry/servers/standupcraft.json` sets `installations.npm.env.GITHUB_TOKEN` and `installations.npm.env.REPOS_DIR` to objects (with `description` and `required`). The registry schema requires `installations.*.env` to be an object whose values are strings.

## Issue Context
- `mcp-registry/schema/server-schema.json` defines `installations.*.env` as `additionalProperties: { "type": "string" }`.
- MCPM runtime config parsing also models env as `Dict[str, str]`.
- Other manifests put variable metadata under top-level `arguments` and keep `installations.*.env` as placeholder string mappings.

## Fix Focus Areas
- mcp-registry/servers/standupcraft.json[26-46]
- mcp-registry/schema/server-schema.json[214-274]
- src/mcpm/core/schema.py[29-33]

## Suggested change shape
- Add a top-level `arguments` object:
  - `GITHUB_TOKEN`: { description, required: false, example }
  - `REPOS_DIR`: { description, required: false, example }
- Change `installations.npm.env` to string placeholders (or omit entirely if truly unused):
  - `"env": { "GITHUB_TOKEN": "${GITHUB_TOKEN}", "REPOS_DIR": "${REPOS_DIR}" }`

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools

"name": "jabbawocky"
},
"license": "MIT",
"categories": ["Monitoring", "Developer Tools"],

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Action required

2. Invalid categories values 🐞 Bug ≡ Correctness

statuscraft.json and standupcraft.json use category strings (including "Monitoring" and
"Developer Tools") that are not allowed by the registry schema’s enumerated category list, so
JSON-schema validation will fail and these manifests will be rejected.
Agent Prompt
## Issue description
`mcp-registry/servers/statuscraft.json` and `mcp-registry/servers/standupcraft.json` set `categories` to values that are not permitted by the enumerated category strings in `mcp-registry/schema/server-schema.json` (notably including "Monitoring" and "Developer Tools"), which causes JSON-schema validation to fail and the manifests to be rejected.

## Issue Context
The repo’s schema validation (`scripts/validate_manifest.py`) enforces `mcp-registry/schema/server-schema.json` (via `jsonschema.validate(...)`) for server JSON files; any `categories` entry not present in the schema’s `categories[].enum` list causes validation failure. The current category values in these manifests include strings that are not in that enum (for example, the schema expects "Dev Tools" rather than "Developer Tools").

## Fix Focus Areas
- mcp-registry/servers/statuscraft.json[13-15]
- mcp-registry/servers/standupcraft.json[13-15]
- mcp-registry/schema/server-schema.json[70-89]

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🧹 Nitpick comments (2)
mcp-registry/servers/standupcraft.json (1)

71-73: ⚡ Quick win

Add date format constraints to date inputs.

Lines 73, 86, and 90 describe ISO dates, but the schema does not enforce it. Add format (date or date-time, whichever the server expects) to improve client-side validation and prevent malformed input.

Also applies to: 84-90

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@mcp-registry/servers/standupcraft.json` around lines 71 - 73, The date input
fields in the standupcraft.json schema (around the "date" field at lines 71-73
and two additional date fields at lines 84-90) specify ISO format in their
descriptions but lack the `format` property that enforces this constraint. Add a
`format` property with the value "date" or "date-time" (depending on what the
server expects) to each date field definition to enable proper client-side
validation and prevent malformed input.
mcp-registry/servers/statuscraft.json (1)

75-79: ⚡ Quick win

Harden services array validation for batch checks.

Line 75 allows an empty list (and duplicates). Consider minItems: 1 and uniqueItems: true so the contract rejects no-op or redundant requests early.

Suggested diff
           "services": {
             "type": "array",
             "items": {"type": "string"},
+            "minItems": 1,
+            "uniqueItems": true,
             "description": "List of service IDs or names to check"
           }
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@mcp-registry/servers/statuscraft.json` around lines 75 - 79, The `services`
array schema definition lacks validation constraints that would prevent no-op or
redundant requests. In the `services` property where type is set to "array" and
items is defined as type "string", add two new validation properties: set
`minItems` to 1 to ensure at least one service is specified, and set
`uniqueItems` to true to prevent duplicate service IDs or names from being
passed in the same batch check request.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@mcp-registry/servers/standupcraft.json`:
- Around line 92-95: The report_type field in the schema is defined as a generic
string type, but the description documents specific allowed values (client and
retro) that are not enforced at the schema level. Add an enum property to the
report_type field definition that restricts the accepted values to only the
documented options: client and retro. This will ensure invalid values are
rejected by the schema validation rather than being passed through to tool
execution.

---

Nitpick comments:
In `@mcp-registry/servers/standupcraft.json`:
- Around line 71-73: The date input fields in the standupcraft.json schema
(around the "date" field at lines 71-73 and two additional date fields at lines
84-90) specify ISO format in their descriptions but lack the `format` property
that enforces this constraint. Add a `format` property with the value "date" or
"date-time" (depending on what the server expects) to each date field definition
to enable proper client-side validation and prevent malformed input.

In `@mcp-registry/servers/statuscraft.json`:
- Around line 75-79: The `services` array schema definition lacks validation
constraints that would prevent no-op or redundant requests. In the `services`
property where type is set to "array" and items is defined as type "string", add
two new validation properties: set `minItems` to 1 to ensure at least one
service is specified, and set `uniqueItems` to true to prevent duplicate service
IDs or names from being passed in the same batch check request.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 10f7225f-3593-44ab-94b3-bd661e3079ad

📥 Commits

Reviewing files that changed from the base of the PR and between 6a92e54 and 2e663a6.

📒 Files selected for processing (2)
  • mcp-registry/servers/standupcraft.json
  • mcp-registry/servers/statuscraft.json

Comment on lines +92 to +95
"report_type": {
"type": "string",
"description": "Type of report: 'client' for client report, 'retro' for sprint retrospective"
}

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major | ⚡ Quick win

Constrain report_type to documented values.

Line 94 defines allowed values (client/retro) in prose, but the schema accepts any string. Add an enum so invalid values are rejected before tool execution.

Suggested diff
           "report_type": {
             "type": "string",
-            "description": "Type of report: 'client' for client report, 'retro' for sprint retrospective"
+            "enum": ["client", "retro"],
+            "description": "Type of report: 'client' for client report, 'retro' for sprint retrospective"
           }
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
"report_type": {
"type": "string",
"description": "Type of report: 'client' for client report, 'retro' for sprint retrospective"
}
"report_type": {
"type": "string",
"enum": ["client", "retro"],
"description": "Type of report: 'client' for client report, 'retro' for sprint retrospective"
}
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@mcp-registry/servers/standupcraft.json` around lines 92 - 95, The report_type
field in the schema is defined as a generic string type, but the description
documents specific allowed values (client and retro) that are not enforced at
the schema level. Add an enum property to the report_type field definition that
restricts the accepted values to only the documented options: client and retro.
This will ensure invalid values are rejected by the schema validation rather
than being passed through to tool execution.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds two new MCP server manifest entries to the mcp-registry so users can discover and install StandupCraft and StatusCraft via the registry.

Changes:

  • Adds a new registry manifest for statuscraft with install instructions, examples, and tool metadata.
  • Adds a new registry manifest for standupcraft with install instructions, examples, and tool metadata.

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 9 comments.

File Description
mcp-registry/servers/statuscraft.json New registry manifest for StatusCraft (install + metadata + tools/examples).
mcp-registry/servers/standupcraft.json New registry manifest for StandupCraft (install + metadata + tools/examples).

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

"name": "jabbawocky"
},
"license": "MIT",
"categories": ["Monitoring", "Developer Tools"],
{
"name": "statuscraft",
"display_name": "StatusCraft",
"description": "MCP server that checks the live status of 141 major software services in real time. Ask your AI agent 'is GitHub down?' or 'what's wrong with Stripe?' and get a live answer pulled directly from official status pages, including full incident detail when something is broken. Services include AWS, Azure, Cloudflare, GitHub, Anthropic, OpenAI, Stripe, Vercel, Netlify, Linear, and more. No API key required.",
Comment on lines +68 to +69
},
{
},
{
"name": "list_services",
"description": "List all 141 tracked services with their IDs and categories",
Comment on lines +96 to +97
}
],
"name": "jabbawocky"
},
"license": "MIT",
"categories": ["Productivity", "Developer Tools"],
Comment on lines +26 to +46
"installations": {
"npm": {
"type": "npm",
"command": "npx",
"args": [
"-y",
"github:jabbawocky/standupcraft"
],
"description": "Run directly via npx — no global install needed",
"env": {
"GITHUB_TOKEN": {
"description": "GitHub personal access token for fetching GitHub activity (optional — git activity works without it)",
"required": false
},
"REPOS_DIR": {
"description": "Directory to scan for git repositories (default: home directory)",
"required": false
}
}
}
},
Comment on lines +64 to +83
"tools": [
{
"name": "generate_standup",
"description": "Generate a daily standup note from git commits and GitHub activity",
"inputSchema": {
"type": "object",
"properties": {
"date": {
"type": "string",
"description": "Date to generate standup for (ISO format, defaults to today)"
}
}
}
},
{
"name": "generate_report",
"description": "Generate a weekly client report or sprint retrospective from git and GitHub activity",
"inputSchema": {
"type": "object",
"properties": {
Comment on lines +84 to +100
"start_date": {
"type": "string",
"description": "Start date for the report period (ISO format)"
},
"end_date": {
"type": "string",
"description": "End date for the report period (ISO format)"
},
"report_type": {
"type": "string",
"description": "Type of report: 'client' for client report, 'retro' for sprint retrospective"
}
}
}
}
],
"prompts": [],
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants