Extract sigil-mcp from sigil monorepo
Standalone release of the Model Context Protocol server for Sigil, extracted from the sigil monorepo at 6eb3b0cd following the workflow in procedures/sigil-package-extraction.
- History preserved via git filter-repo --path packages/sigil-mcp/ --path-rename packages/sigil-mcp/: (54 commits). - Scaffolding: README.md, .gitignore (build/, .sigil/), manifest.scm (Scheme-only dev shell), dev-redirects.sgl (sigil, sigil-json, sigil-log siblings). - package.sgl: version 0.13.1, url retargeted to codeberg.org/sigil/sigil-mcp, four workspace deps (sigil-stdlib, sigil-args, sigil-ansi, sigil-nrepl) swapped to from-git codeberg:sigil/sigil with package: selector and ^0.13.1 pin. sigil-json stays at ^0.13.1 (already external); sigil-log stays at ^0.13.0 (no v0.13.1 tag exists in that repo). - sigil deps install: 6 lock entries, 10 packages installed. - sigil build: clean. - sigil test --report: 70/72 pass. The two failing tests ("missing required arg returns invalid-params (not handler call)" and "multiple missing required args listed in error") also fail on monorepo master @ 6eb3b0cd — pre-existing baseline from t-c5b2, not a regression introduced by the extraction.
No functional changes from the monorepo version.
.gitignore | 2 ++
README.md | 58 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
dev-redirects.sgl | 13 +++++++++++++
manifest.scm | 7 +++++++
package.sgl | 11 ++++++-----
sigil.lock | 33 +++++++++++++++++++++++++++++++++
6 files changed, 119 insertions(+), 5 deletions(-).gitignoreadded
build/.sigil/README.mdadded
# sigil-mcpModel Context Protocol server for[Sigil](https://codeberg.org/sigil/sigil). Exposes documentation,procedure discovery, code linting, formatting, test execution, andnREPL-backed evaluation as MCP tools and resources, so AI agents canwrite idiomatic Sigil code against a live project.Invoked through `sigil mcp serve` (registered as a subcommand ofsigil-cli).## Modules| Module | Purpose ||-----------------------------|-------------------------------------------------------------|| `(sigil mcp)` | Top-level `mcp-serve` entry point and re-exports || `(sigil mcp server)` | Server loop, message routing, handler registration || `(sigil mcp protocol)` | JSON-RPC 2.0 framing and MCP message shapes || `(sigil mcp channel)` | Helpers for building channel-based MCP servers || `(sigil mcp tools)` | Built-in MCP tool implementations (docs, format, test, ...) || `(sigil mcp nrepl)` | MCP tools backed by an attached nREPL session || `(sigil mcp resources)` | MCP resource providers (docs, package metadata) || `(sigil mcp lint)` | Code linting surface exposed as an MCP tool || `(sigil mcp commands)` | `sigil mcp` CLI subcommand registration |## Usage```scheme(import (sigil mcp));; Start the MCP server (reads from stdin, writes to stdout)(mcp-serve)```Or from the command line via sigil-cli:```sigil mcp serve```## Build and test```sigil deps installsigil buildsigil test --report```Local development against an unreleased sigil monorepo:```sigil deps install --redirects ./dev-redirects.sglsigil build --redirects ./dev-redirects.sgl```## LicenseBSD-3-Clause. See `LICENSE` in the sigil monorepo for the canonical copy.dev-redirects.sgladded
;; Development redirects — point from-git deps at local sibling checkouts;; during monorepo dev. Use: sigil build --redirects ./dev-redirects.sgl(redirects repos: (list (for-repo url: "codeberg:sigil/sigil" use: (from-path dir: "../sigil")) (for-repo url: "codeberg:sigil/sigil-json" use: (from-path dir: "../sigil-json")) (for-repo url: "codeberg:sigil/sigil-log" use: (from-path dir: "../sigil-log"))))manifest.scmadded
;; sigil-mcp Development Environment;; Use with: guix shell -m manifest.scm(specifications->manifest '("gcc-toolchain" "make" "pkg-config"))package.sglmodified
(package name: "sigil-mcp" version: "0.13.1" description: "MCP server for AI-assisted Sigil development" url: "https://codeberg.org/sigil/sigil" url: "https://codeberg.org/sigil/sigil-mcp" license: "BSD-3-Clause" authors: (list "David Wilson <[email protected]>") dependencies: (list (from-workspace name: "sigil-stdlib") (from-git url: "codeberg:sigil/sigil" package: "sigil-stdlib" version: "^0.13.1") (from-git url: "codeberg:sigil/sigil-json" version: "^0.13.1") (from-workspace name: "sigil-args") (from-workspace name: "sigil-ansi") (from-workspace name: "sigil-nrepl") (from-git url: "codeberg:sigil/sigil" package: "sigil-args" version: "^0.13.1") (from-git url: "codeberg:sigil/sigil" package: "sigil-ansi" version: "^0.13.1") (from-git url: "codeberg:sigil/sigil" package: "sigil-nrepl" version: "^0.13.1") (from-git url: "codeberg:sigil/sigil-log" version: "^0.13.0")))sigil.lockadded
;; Auto-generated by sigil deps install. Do not edit.(lock (package name: "sigil-stdlib" url: "codeberg:sigil/sigil" ref: "^0.13.1" sha: "1aea1cecd3487bf07d071da2c1e7eb3cf4bbdb21" package-selector: "sigil-stdlib") (package name: "sigil-json" url: "codeberg:sigil/sigil-json" ref: "^0.13.1" sha: "811b63925399a663e4b7dd25fb0813d59d33f557" version: "0.13.1") (package name: "sigil-args" url: "codeberg:sigil/sigil" ref: "^0.13.1" sha: "1aea1cecd3487bf07d071da2c1e7eb3cf4bbdb21" package-selector: "sigil-args") (package name: "sigil-ansi" url: "codeberg:sigil/sigil" ref: "^0.13.1" sha: "1aea1cecd3487bf07d071da2c1e7eb3cf4bbdb21" package-selector: "sigil-ansi") (package name: "sigil-nrepl" url: "codeberg:sigil/sigil" ref: "^0.13.1" sha: "1aea1cecd3487bf07d071da2c1e7eb3cf4bbdb21" package-selector: "sigil-nrepl") (package name: "sigil-log" url: "codeberg:sigil/sigil-log" ref: "^0.13.0" sha: "44aa809a421be278e7a9c0d692b65d01b576c53f" version: "0.13.0"))