Commitf5067ae0Recorded25 Apr 2026Repositorysigil-mcp

Extract sigil-mcp from sigil monorepo

Message

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.

Changed
 .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(-)
Diff
.gitignoreadded
@@ -0,0 +1,2 @@
+1
build/
+2
.sigil/
README.mdadded
@@ -0,0 +1,58 @@
+1
# sigil-mcp
+2
+3
Model Context Protocol server for
+4
[Sigil](https://codeberg.org/sigil/sigil). Exposes documentation,
+5
procedure discovery, code linting, formatting, test execution, and
+6
nREPL-backed evaluation as MCP tools and resources, so AI agents can
+7
write idiomatic Sigil code against a live project.
+8
+9
Invoked through `sigil mcp serve` (registered as a subcommand of
+10
sigil-cli).
+11
+12
## Modules
+13
+14
| Module | Purpose |
+15
|-----------------------------|-------------------------------------------------------------|
+16
| `(sigil mcp)` | Top-level `mcp-serve` entry point and re-exports |
+17
| `(sigil mcp server)` | Server loop, message routing, handler registration |
+18
| `(sigil mcp protocol)` | JSON-RPC 2.0 framing and MCP message shapes |
+19
| `(sigil mcp channel)` | Helpers for building channel-based MCP servers |
+20
| `(sigil mcp tools)` | Built-in MCP tool implementations (docs, format, test, ...) |
+21
| `(sigil mcp nrepl)` | MCP tools backed by an attached nREPL session |
+22
| `(sigil mcp resources)` | MCP resource providers (docs, package metadata) |
+23
| `(sigil mcp lint)` | Code linting surface exposed as an MCP tool |
+24
| `(sigil mcp commands)` | `sigil mcp` CLI subcommand registration |
+25
+26
## Usage
+27
+28
```scheme
+29
(import (sigil mcp))
+30
+31
;; Start the MCP server (reads from stdin, writes to stdout)
+32
(mcp-serve)
+33
```
+34
+35
Or from the command line via sigil-cli:
+36
+37
```
+38
sigil mcp serve
+39
```
+40
+41
## Build and test
+42
+43
```
+44
sigil deps install
+45
sigil build
+46
sigil test --report
+47
```
+48
+49
Local development against an unreleased sigil monorepo:
+50
+51
```
+52
sigil deps install --redirects ./dev-redirects.sgl
+53
sigil build --redirects ./dev-redirects.sgl
+54
```
+55
+56
## License
+57
+58
BSD-3-Clause. See `LICENSE` in the sigil monorepo for the canonical copy.
dev-redirects.sgladded
@@ -0,0 +1,13 @@
+1
;; Development redirects — point from-git deps at local sibling checkouts
+2
;; during monorepo dev. Use: sigil build --redirects ./dev-redirects.sgl
+3
(redirects
+4
repos: (list
+5
(for-repo
+6
url: "codeberg:sigil/sigil"
+7
use: (from-path dir: "../sigil"))
+8
(for-repo
+9
url: "codeberg:sigil/sigil-json"
+10
use: (from-path dir: "../sigil-json"))
+11
(for-repo
+12
url: "codeberg:sigil/sigil-log"
+13
use: (from-path dir: "../sigil-log"))))
manifest.scmadded
@@ -0,0 +1,7 @@
+1
;; sigil-mcp Development Environment
+2
;; Use with: guix shell -m manifest.scm
+3
+4
(specifications->manifest
+5
'("gcc-toolchain"
+6
"make"
+7
"pkg-config"))
package.sglmodified
@@ -5,15 +5,16 @@
5
6
(package
7
name: "sigil-mcp"
+8
version: "0.13.1"
9
description: "MCP server for AI-assisted Sigil development"
9
url: "https://codeberg.org/sigil/sigil"
+10
url: "https://codeberg.org/sigil/sigil-mcp"
11
license: "BSD-3-Clause"
12
authors: (list "David Wilson <[email protected]>")
13
14
dependencies: (list
14
(from-workspace name: "sigil-stdlib")
+15
(from-git url: "codeberg:sigil/sigil" package: "sigil-stdlib" version: "^0.13.1")
16
(from-git url: "codeberg:sigil/sigil-json" version: "^0.13.1")
16
(from-workspace name: "sigil-args")
17
(from-workspace name: "sigil-ansi")
18
(from-workspace name: "sigil-nrepl")
+17
(from-git url: "codeberg:sigil/sigil" package: "sigil-args" version: "^0.13.1")
+18
(from-git url: "codeberg:sigil/sigil" package: "sigil-ansi" version: "^0.13.1")
+19
(from-git url: "codeberg:sigil/sigil" package: "sigil-nrepl" version: "^0.13.1")
20
(from-git url: "codeberg:sigil/sigil-log" version: "^0.13.0")))
sigil.lockadded
@@ -0,0 +1,33 @@
+1
;; Auto-generated by sigil deps install. Do not edit.
+2
(lock
+3
(package name: "sigil-stdlib"
+4
url: "codeberg:sigil/sigil"
+5
ref: "^0.13.1"
+6
sha: "1aea1cecd3487bf07d071da2c1e7eb3cf4bbdb21"
+7
package-selector: "sigil-stdlib")
+8
(package name: "sigil-json"
+9
url: "codeberg:sigil/sigil-json"
+10
ref: "^0.13.1"
+11
sha: "811b63925399a663e4b7dd25fb0813d59d33f557"
+12
version: "0.13.1")
+13
(package name: "sigil-args"
+14
url: "codeberg:sigil/sigil"
+15
ref: "^0.13.1"
+16
sha: "1aea1cecd3487bf07d071da2c1e7eb3cf4bbdb21"
+17
package-selector: "sigil-args")
+18
(package name: "sigil-ansi"
+19
url: "codeberg:sigil/sigil"
+20
ref: "^0.13.1"
+21
sha: "1aea1cecd3487bf07d071da2c1e7eb3cf4bbdb21"
+22
package-selector: "sigil-ansi")
+23
(package name: "sigil-nrepl"
+24
url: "codeberg:sigil/sigil"
+25
ref: "^0.13.1"
+26
sha: "1aea1cecd3487bf07d071da2c1e7eb3cf4bbdb21"
+27
package-selector: "sigil-nrepl")
+28
(package name: "sigil-log"
+29
url: "codeberg:sigil/sigil-log"
+30
ref: "^0.13.0"
+31
sha: "44aa809a421be278e7a9c0d692b65d01b576c53f"
+32
version: "0.13.0")
+33
)