SIN-Code MCP Server Builder Skill
> [!IMPORTANT]
> **Archived on July 28, 2026.** This standalone repository is read-only because its functionality moved to [`OpenSIN-Code/SIN-Code`](https://github.com/OpenSIN-Code/SIN-Code) in [PR #513](https://github.com/OpenSIN-Code/SIN-Code/pull/513).
>
> Use the canonical surface `sin mcp-server`. The former builder CLI shims and Python namespace `sin_mcp_server_builder` remain available for compatibility.
> ## ⚠️ DEPRECATED — This skill has been merged into [sin-code-bundle](https://github.com/OpenSIN-Code/SIN-Code-Bundle)
>
> As of v0.9.3 (2026-06-06), this standalone skill is now a subcommand of the `sin-code-bundle` CLI:
>
> | Old | New |
> |-----|-----|
> | standalone skill | `sin mcp-server` |
>
> **Migrate now:** `pip install --upgrade sin-code-bundle`
>
> This repo is archived; no further updates will be made.
> See [issue #29](https://github.com/OpenSIN-Code/SIN-Code-Bundle/issues/29) for the consolidation rationale.
# SIN-Code-MCP-Server-Builder-Skill
[](https://modelcontextprotocol.io)
[](.github/workflows/ceo-audit.yml)
[](src/sin_mcp_server_builder)
> **Meta-skill that scaffolds new MCP servers** for the OpenSIN-Code ecosystem. Supports `python-fastmcp`, `node-mcp`, and `go-mcp` templates — 8 FastMCP tools, 113 tests, 100% CoDocs.
## What it does
The OpenSIN-Code ecosystem runs **30+ MCP servers** (sin-websearch, sin-scheduler, sin-marketplace, sin-slash, sin-goal-mode, sin-infisical, …). Every one of them followed the same canonical pattern: `pyproject.toml` + `src/<pkg>/mcp_server.py` + `tests/` + `*.doc.md` + `ceo-audit.yml`. This meta-skill codifies that pattern — give it a name + a list of tools and you get a fully scaffolded, CoDocs-compliant, ceo-audit-ready MCP server in one tool call.
## Features
- **3 templates** — `python-fastmcp` (FastMCP), `node-mcp` (official SDK), `go-mcp` (go-sdk)
- **8 FastMCP tools** — scaffold, template_list, add_tool, test, register, validate, publish, audit
- **113 tests** covering scaffolding, template rendering, tool addition, test generation, registration, validation, MCP server
- **100% CoDocs** — every `.py` has a sibling `.doc.md`
- **6 bash scripts** — `mcp-scaffold.sh`, `mcp-add-tool.sh`, `mcp-test.sh`, `mcp-register.sh`, `mcp-validate.sh`, `mcp-publish.sh`
- **ceo-audit** workflow with grade gate B
## Quick Start
```bash
git clone https://github.com/OpenSIN-Code/SIN-Code-MCP-Server-Builder-Skill.git
cd SIN-Code-MCP-Server-Builder-Skill
pip install -e ".[dev]"
```
### Run the MCP server
```bash
sin-mcp-server-builder-mcp
# or
python -m sin_mcp_server_builder.mcp_server
```
### Scaffold a new MCP server
```bash
./scripts/mcp-scaffold.sh -n "My Tool" -d "Does cool things" -T python-fastmcp -o "do_x,do_y"
```
### Validate a freshly scaffolded server
```bash
./scripts/mcp-validate.sh ./my-new-tool
```
## MCP Tools
| Tool | Purpose |
|------|---------|
| `mcp_scaffold` | Scaffold a new MCP server from a spec |
| `mcp_template_list` | List available templates |
| `mcp_tool_add` | Add a new tool to an existing MCP server (preserves CoDocs) |
| `mcp_tool_test` | Generate pytest tests for a tool |
| `mcp_register` | Register the server in `opencode.json` |
| `mcp_validate` | Validate tools (type hints, docstrings, CoDocs) |
| `mcp_publish` | Publish to PyPI / npm |
| `mcp_audit` | Run ceo-audit (47 quality gates) |
## Architecture
```
MCP Client (OpenCode, Claude, …)
↓ FastMCP (stdio)
mcp_server.py
↓
┌──────────────────────────────────────────────┐
│ Scaffolder │ ToolAdder │ TestGenerator │
│ Templates │ Registrar │ Validator │
│ Publisher │ Auditor │
└──────────────────────────────────────────────┘
↓
┌──────────────────────────────────────────────┐
│ python-fastmcp / node-mcp / go-mcp templates │
│ (CoDocs + ceo-audit.yml + tests + scripts) │
└──────────────────────────────────────────────┘
```
## Project Structure
```
SIN-Code-MCP-Server-Builder-Skill/
├── src/sin_mcp_server_builder/
│ ├── __init__.py — Package entry, public API
│ ├── mcp_server.py — FastMCP server (8 tools)
│ ├── scaffolder.py — Scaffold new servers from a spec
│ ├── templates.py — Jinja2 engine + template registry
│ ├── tool_adder.py — Add tools to existing servers
│ ├── test_gen.py — Generate pytest tests
│ ├── registrar.py — Update opencode.json
│ ├── validator.py — Static validator (47 gates subset)
│ ├── publisher.py — PyPI / npm publish
│ └── auditor.py — ceo-audit runner
├── templates/
│ ├── python-fastmcp/ — Python + FastMCP
│ ├── node-mcp/ — Node.js + @modelcontextprotocol/sdk
│ └── go-mcp/ — Go + go-sdk
├── scripts/ — Bash CLI wrappers
├── tests/ — 113 tests
├── .github/workflows/ceo-audit.yml
├── pyproject.toml
├── README.md
├── SKILL.md
└── AGENTS.md
```
## Testing
```bash
pytest -q
pytest --cov=src/sin_mcp_server_builder --cov-report=term-missing
```
## CoDocs
Every `.py` file has a sibling `.doc.md` companion. Run `sin codocs check` to verify.
## CI
The `ceo-audit.yml` workflow runs on every push to `main` and:
1. Installs the package + dev deps
2. Runs `pytest -q`
3. Lints with `black` + `ruff`
4. Type-checks with `mypy`
5. Runs `sin ceo-audit run . --profile=QUICK --grade=B`
## License
MIT — OpenSIN-Code
TDQS
Scored across 8 tools
Each tool targets a distinct action in the MCP server lifecycle: scaffolding, tool addition, validation, audit, testing, publishing, registration, and template listing. No two tools have overlapping purposes.
All tool names follow a consistent 'mcp_verb_noun' pattern using lowercase snake_case, e.g., mcp_scaffold, mcp_tool_add, mcp_publish. The convention is uniform across all 8 tools.
With 8 tools, the set is well-scoped for a server builder skill. It covers essential operations without oversaturating the interface, making it manageable for an agent.
The tool set covers the core workflow: scaffold, add tools, validate, audit, test, publish, and register. Minor gaps like lacking a tool removal or update mechanism exist but do not hinder the primary use case.