{"_id":"@daemoniorum/sigil-mcp","_rev":"4-e0167f687f45967ce19bc52c2c92b090","name":"@daemoniorum/sigil-mcp","dist-tags":{"latest":"1.0.1"},"versions":{"1.0.0":{"name":"@daemoniorum/sigil-mcp","version":"1.0.0","keywords":["sigil","mcp","ai","programming-language","evidentiality"],"author":{"name":"Daemoniorum LLC"},"license":"MIT","_id":"@daemoniorum/sigil-mcp@1.0.0","maintainers":[{"name":"paraphilic-ecchymosis","email":"lilith@daemoniorum.com"}],"bin":{"sigil-mcp":"dist/index.js"},"dist":{"shasum":"1cdbbed28cdb0adf3bc33cfb81d262d1ded5238e","tarball":"https://registry.npmjs.org/@daemoniorum/sigil-mcp/-/sigil-mcp-1.0.0.tgz","fileCount":9,"integrity":"sha512-P3/af1yZI6In5BUzLx/Uaz36hKqkKSxInp14d3J4S7/zp4zm7/xgUYnsGmBrmFEp5aVGt+PQzyfNbCdSKfDTIg==","signatures":[{"sig":"MEUCIFriCUjXEQCluWTd8d5+p1z5zV1RvULlwMGKprnGxDk7AiEAohiIR+Ld4r/5zdPxFEd6KQmD5G0GXHal+zuC/1Ky0gs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":40312},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"b219b81831616791eea1815b57830e5b72d15a5e","scripts":{"dev":"tsc --watch","build":"tsc","start":"node dist/index.js"},"_npmUser":{"name":"paraphilic-ecchymosis","email":"lilith@daemoniorum.com"},"_npmVersion":"11.6.2","description":"MCP server for the Sigil programming language - enabling AI systems to write, run, and analyze Sigil code","directories":{},"_nodeVersion":"24.12.0","dependencies":{"@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0","@types/node":"^20.10.0"},"_npmOperationalInternal":{"tmp":"tmp/sigil-mcp_1.0.0_1768515775733_0.02962297417944848","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@daemoniorum/sigil-mcp","version":"1.0.1","description":"MCP server for the Sigil programming language - enabling AI systems to write, run, and analyze Sigil code","type":"module","main":"dist/index.js","bin":{"sigil-mcp":"dist/index.js"},"scripts":{"build":"tsc","start":"node dist/index.js","dev":"tsc --watch"},"keywords":["sigil","mcp","ai","programming-language","evidentiality"],"author":{"name":"Daemoniorum LLC"},"license":"MIT","dependencies":{"@modelcontextprotocol/sdk":"^1.0.0"},"devDependencies":{"@types/node":"^20.10.0","typescript":"^5.3.0"},"engines":{"node":">=18.0.0"},"gitHead":"b106a044470f895251d3f1b6e67448101205041b","types":"./dist/index.d.ts","_id":"@daemoniorum/sigil-mcp@1.0.1","_nodeVersion":"24.12.0","_npmVersion":"11.6.2","dist":{"integrity":"sha512-x3hh4sB65arXY7BfCJbbq3rIdh0ORqQyEAabymiFHIjnSgaDdYH5V8xcYf44jNBDL07lFauNtt0JZKyW/yfA4A==","shasum":"5585b8055b266e2087fa6607fa4f5c741c84f931","tarball":"https://registry.npmjs.org/@daemoniorum/sigil-mcp/-/sigil-mcp-1.0.1.tgz","fileCount":9,"unpackedSize":44940,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCV83appCF9Ws8FMhDV9+YJ138hS+yBEFJJtmlSRjXktgIgSZeo/1UO8VyXWTFxDqL6n4HC2G+ZX2jeIwG64XKZx/o="}]},"_npmUser":{"name":"paraphilic-ecchymosis","email":"lilith@daemoniorum.com"},"directories":{},"maintainers":[{"name":"paraphilic-ecchymosis","email":"lilith@daemoniorum.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/sigil-mcp_1.0.1_1768550345194_0.13749212849147052"},"_hasShrinkwrap":false}},"time":{"created":"2026-01-15T22:22:55.624Z","modified":"2026-01-16T07:59:05.474Z","0.1.0":"2025-12-03T02:38:29.186Z","1.0.0":"2026-01-15T22:22:55.874Z","1.0.1":"2026-01-16T07:59:05.342Z"},"author":{"name":"Daemoniorum LLC"},"license":"MIT","keywords":["sigil","mcp","ai","programming-language","evidentiality"],"description":"MCP server for the Sigil programming language - enabling AI systems to write, run, and analyze Sigil code","maintainers":[{"name":"paraphilic-ecchymosis","email":"lilith@daemoniorum.com"}],"readme":"# Sigil MCP Server\n\nAn MCP (Model Context Protocol) server that enables AI systems to write, run, type-check, and analyze Sigil code.\n\n## Why?\n\nSigil is a programming language built for AI, by AI. This MCP server puts Sigil directly in the hands of AI assistants, allowing them to:\n\n- **Write and execute Sigil code** with proper evidentiality tracking\n- **Type-check code** with enforcement of evidence levels\n- **Analyze code as structured data** via the AI IR format\n- **Generate explanations** of what Sigil code does\n\nThe evidentiality system (`!` known, `?` uncertain, `~` reported) lets AI systems be honest about the certainty of their data - and the type checker enforces it.\n\n## Installation\n\n**From npm:**\n```bash\nnpm install -g @daemoniorum/sigil-mcp\n```\n\n**From source:**\n```bash\ncd tools/mcp-server\nnpm install\nnpm run build\n```\n\n## Configuration\n\n### Claude Desktop\n\nAdd to your `claude_desktop_config.json`:\n\n```json\n{\n  \"mcpServers\": {\n    \"sigil\": {\n      \"command\": \"node\",\n      \"args\": [\"/path/to/sigil-lang/tools/mcp-server/dist/index.js\"],\n      \"env\": {\n        \"SIGIL_BIN\": \"/path/to/sigil-lang/parser/target/release/sigil\"\n      }\n    }\n  }\n}\n```\n\n### Environment Variables\n\n- `SIGIL_BIN`: Path to the Sigil binary (default: `sigil` in PATH)\n\n## Tools\n\n### `sigil_run`\n\nExecute Sigil code and return the output.\n\n```typescript\n{\n  code: string,      // Sigil source code\n  backend?: string   // \"interpreter\" (default), \"jit\", or \"llvm\" (fastest)\n}\n```\n\n**Example:**\n```sigil\nfn main() {\n    let nums = [1, 2, 3, 4, 5];\n    let doubled = nums |τ{_ * 2};\n    print(doubled);\n}\n```\n\n### `sigil_check`\n\nType-check Sigil code with evidentiality enforcement.\n\n```typescript\n{\n  code: string  // Sigil source code\n}\n```\n\nReturns type errors including evidence mismatches. This is crucial for AI safety - it tracks data provenance at the type level.\n\n### `sigil_ir`\n\nGet the AI-readable intermediate representation.\n\n```typescript\n{\n  code: string,     // Sigil source code\n  format?: string   // \"json\" (default) or \"pretty\"\n}\n```\n\nReturns a JSON structure optimized for AI analysis, allowing reasoning about code without parsing source text.\n\n### `sigil_explain`\n\nGenerate a natural language explanation of Sigil code.\n\n```typescript\n{\n  code: string  // Sigil source code\n}\n```\n\nAnalyzes code structure and describes:\n- What the code computes\n- How data flows through pipelines\n- What evidence levels are used and why\n\n### `sigil_lint`\n\nRun the Sigil linter to find code quality issues.\n\n```typescript\n{\n  code: string,    // Sigil source code\n  fix?: boolean    // If true, returns code with auto-fixes applied\n}\n```\n\nCatches common problems like unused variables, shadowed bindings, missing returns, unreachable code, and style issues.\n\n## Example Session\n\n**AI writes and runs Sigil code:**\n\n```\nUser: Calculate the sum of squares from 1 to 10\n\nAI: I'll write this in Sigil using morpheme operators:\n\n[calls sigil_run with:]\nfn main() {\n    let numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];\n    let sum_of_squares = numbers\n        |τ{_ * _}\n        |ρ{0, acc, x => acc + x};\n    print(sum_of_squares);\n}\n\nOutput: 385\n```\n\n**AI handles external data with evidence tracking:**\n\n```\nUser: Process this user input safely\n\nAI: I'll mark the input as reported (~) and validate it:\n\n[calls sigil_check with:]\nfn process_input(data~: str) -> int? {\n    // data is reported - we can't trust it as known\n    let validated = data |validate?{parse_int(_)};\n    validated  // returns uncertain, not known\n}\n```\n\n## Evidentiality Quick Reference\n\n| Marker | Name | Meaning |\n|--------|------|---------|\n| `!` | Known | Computed/verified data - highest certainty |\n| `?` | Uncertain | May vary, needs handling |\n| `~` | Reported | External data - requires validation |\n| `‽` | Paradox | Self-referential or contradictory |\n\nEvidence flows: `known → uncertain → reported`\n\nKnown can satisfy any requirement. Reported cannot satisfy known requirements without explicit validation.\n\n## Development\n\n```bash\nnpm run dev    # Watch mode\nnpm run build  # Build for production\nnpm start      # Run the server\n```\n\n## License\n\nMIT - See LICENSE in the repository root.\n","readmeFilename":"README.md"}