{"_id":"@artano-ai/mcp-server","_rev":"2-5c0533b1ee92979859282be1bcc9009f","name":"@artano-ai/mcp-server","dist-tags":{"latest":"0.1.1"},"versions":{"0.1.0":{"name":"@artano-ai/mcp-server","version":"0.1.0","author":{"url":"Atomira Technologies, S.L.","name":"Arsalan Akhtar"},"license":"Apache-2.0","_id":"@artano-ai/mcp-server@0.1.0","maintainers":[{"name":"atomira","email":"sr.arsalan.akhtar@gmail.com"}],"homepage":"https://openlemma.dev","bugs":{"url":"https://github.com/artano-ai/lemma/issues"},"bin":{"lemma-mcp-server":"dist/index.js"},"dist":{"shasum":"877c63b4788fd37071cea6d281221cfd69aff6b0","tarball":"https://registry.npmjs.org/@artano-ai/mcp-server/-/mcp-server-0.1.0.tgz","fileCount":104,"integrity":"sha512-R18QBDz/h1hvOUBlXU3kDSo07tzj6PyqPYSPUMt4dMja99/6Vrs6fpSRJY58qoSo5A0C6jjvIM3kG6tYbo0sCg==","signatures":[{"sig":"MEYCIQCFWPFDfshNDQBAMBGlAfUW8Bow5sh63gRjaxdPTwK/8wIhAI0krE1Mau/4A9fUYJQIVfLuuwrNiVBq8V94GNkPvjGU","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":204514},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"gitHead":"619c19f9f9f3b7adb593d15abf3ddd8d9082172f","scripts":{"dev":"node --env-file-if-exists=.env.local --import=tsx src/index.ts","test":"node --import=tsx --test test/*.test.ts","build":"tsc","start":"node --env-file-if-exists=.env.local dist/index.js","prepack":"tsc && node scripts/bundle-cards.mjs","typecheck":"tsc --noEmit"},"_npmUser":{"name":"atomira","email":"sr.arsalan.akhtar@gmail.com"},"repository":{"url":"git+https://github.com/artano-ai/lemma.git","type":"git","directory":"mcp-server"},"_npmVersion":"11.6.0","description":"Lemma's Model Context Protocol server — exposes the open scientific cards corpus, the cross-check engine, and RAG retrieval to any MCP-compatible client.","directories":{},"_nodeVersion":"24.5.0","dependencies":{"pg":"^8.13.0","@google/genai":"^1.50.1","@huggingface/transformers":"^3.6.0","@modelcontextprotocol/sdk":"^1.0.4"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","@types/pg":"^8.11.10","typescript":"^5.7.0","@types/node":"^22.7.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.1.0_1781550388412_0.6348813683353196","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@artano-ai/mcp-server","version":"0.1.1","description":"Lemma's Model Context Protocol server — exposes the open scientific cards corpus, the cross-check engine, and RAG retrieval to any MCP-compatible client.","license":"Apache-2.0","author":{"name":"Arsalan Akhtar","url":"Atomira Technologies, S.L."},"type":"module","publishConfig":{"access":"public"},"repository":{"type":"git","url":"git+https://github.com/artano-ai/lemma.git","directory":"mcp-server"},"homepage":"https://openlemma.dev","bin":{"lemma-mcp-server":"dist/index.js"},"main":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./engine":{"types":"./dist/engine.d.ts","default":"./dist/engine.js"}},"scripts":{"build":"tsc","dev":"node --env-file-if-exists=.env.local --import=tsx src/index.ts","start":"node --env-file-if-exists=.env.local dist/index.js","typecheck":"tsc --noEmit","test":"node --import=tsx --test test/*.test.ts","prepack":"tsc && node scripts/bundle-cards.mjs"},"dependencies":{"@modelcontextprotocol/sdk":"^1.0.4","@google/genai":"^1.50.1","@huggingface/transformers":"^3.6.0","pg":"^8.13.0"},"devDependencies":{"@types/node":"^22.7.0","@types/pg":"^8.11.10","tsx":"^4.19.0","typescript":"^5.7.0"},"engines":{"node":">=20"},"_id":"@artano-ai/mcp-server@0.1.1","gitHead":"619c19f9f9f3b7adb593d15abf3ddd8d9082172f","types":"./dist/index.d.ts","bugs":{"url":"https://github.com/artano-ai/lemma/issues"},"_nodeVersion":"24.5.0","_npmVersion":"11.6.0","dist":{"integrity":"sha512-OMvhK/0RStXuHlXiR3sWJHHohaPF/prdV3QAMmkiuAMXuCA4i6ny+aWoGBExuUbs2UUhuFvjGcCRw1qzVPpt5g==","shasum":"bf47722512738071096a7970da431903559e7ddf","tarball":"https://registry.npmjs.org/@artano-ai/mcp-server/-/mcp-server-0.1.1.tgz","fileCount":107,"unpackedSize":207206,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIQCreTRMDhU5bvf0XToA/ztIYzer2dmgB+IPHpPRQLqSYQIfNKvsA1RBxGntZ/zdO1ge3OzX5vq9Kz2A42xJbk2KLw=="}]},"_npmUser":{"name":"atomira","email":"sr.arsalan.akhtar@gmail.com"},"directories":{},"maintainers":[{"name":"atomira","email":"sr.arsalan.akhtar@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/mcp-server_0.1.1_1781560096090_0.377012666995336"},"_hasShrinkwrap":false}},"time":{"created":"2026-06-15T19:06:28.239Z","modified":"2026-06-15T21:48:16.361Z","0.1.0":"2026-06-15T19:06:28.606Z","0.1.1":"2026-06-15T21:48:16.230Z"},"bugs":{"url":"https://github.com/artano-ai/lemma/issues"},"author":{"name":"Arsalan Akhtar","url":"Atomira Technologies, S.L."},"license":"Apache-2.0","homepage":"https://openlemma.dev","repository":{"type":"git","url":"git+https://github.com/artano-ai/lemma.git","directory":"mcp-server"},"description":"Lemma's Model Context Protocol server — exposes the open scientific cards corpus, the cross-check engine, and RAG retrieval to any MCP-compatible client.","maintainers":[{"name":"atomira","email":"sr.arsalan.akhtar@gmail.com"}],"readme":"# @artano-ai/mcp-server\n\n[Lemma](../cards/README.md)'s MCP server — exposes the open cards corpus and verification engines to any [MCP](https://modelcontextprotocol.io)-compatible client.\n\nThe server is the canonical distribution surface for the Lemma substrate. Plug it into claude-code, Cursor, Codex, Gemini Code Assist, or any MCP-aware tool-use runtime and gain access to:\n\n### Cards & verification\n\n- **`cards_list`** — list curated scientific principle cards in the local seed corpus (condensed-matter physics, classical mechanics, chemistry — the corpus is domain-agnostic and grows over time). Optional `domain` substring filter.\n- **`cards_get`** — fetch a full card record (PrincipleCard or HypothesisCard) by id. Returns the JSON payload. Refuses to fabricate — unknown ids produce a structured error listing valid ids.\n- **`ops_get`** — fetch an OpsCard (SLURM / Snakemake / Singularity recipes) rendered as Markdown for direct LLM consumption.\n- **`hypothesis_crosscheck`** — run the hypothesis cross-check engine on a HypothesisCard. Pass either an `id` (existing card) or an inline `card` object (e.g. one freshly proposed by an LLM). Verifies dimensional analysis (real), reference-corpus resolution (real), declared limit / conservation claims (recorded as warnings pending symbolic verification), and `derivedFrom` link resolution. Returns a verdict + diagnosis.\n\n### Retrieval\n\n- **`rag_lookup`** — retrieves passages from a Postgres + pgvector corpus indexed over the Siesta manual, ASE, pymatgen, numerical methods, SLURM/MareNostrum docs, and any extra source you point it at.\n\nTools deliberately omitted: `read_file`, `write_file`, `list_files`, `run_shell`. Every modern tool-use runtime already provides those — this server adds the scientific layer on top.\n\n---\n\n## Install\n\n```sh\npnpm install\npnpm build\n```\n\n## Configure\n\nCopy `.env.example` to `.env.local` and fill in at least `LEMMA_RAG_DSN`. The other variables have working defaults for local development.\n\nThe Postgres database must have the `pgvector` extension enabled and a `chunks` table of embedded passages. The server reads from that table; building and populating it (embedding your sources, then indexing) is a separate step run against the same schema.\n\n## Wire it into a client\n\nMost MCP clients accept a stdio server defined in a JSON config. The exact location of that config depends on the client. The shape is universal:\n\n```json\n{\n  \"mcpServers\": {\n    \"lemma\": {\n      \"command\": \"node\",\n      \"args\": [\"/absolute/path/to/repo/mcp-server/dist/index.js\"],\n      \"env\": {\n        \"LEMMA_RAG_DSN\": \"postgresql://you@localhost:5432/atomira_lab\"\n      }\n    }\n  }\n}\n```\n\nOnce the client restarts, the tools appear and can be called the same way as any other tool the client exposes.\n\nThe cards/hypothesis tools work with no env config — they read from the bundled seed corpus. Only `rag_lookup` needs `LEMMA_RAG_DSN`; the others are optional.\n\n## Run from source (dev)\n\n```sh\npnpm dev\n```\n\nSpeaks MCP over stdio. Connect any MCP client to it (or use the bundled smoke test once it's added).\n\n## What this is and isn't\n\n- This server is **infrastructure**. It does not call an LLM, does not maintain conversation state, and does not know which client is calling it. It just exposes tools.\n- It is **one of several clients** of the same Lemma backend (cards corpus + USCE + cross-check engine) — alongside the Python SDK, a CLI, IDE extensions, and web front-ends. Those are independent consumers of the substrate, not part of this package.\n- For the wider Lemma architecture (cards corpus, hypothesis cross-check engine, provenance), see `../cards/README.md` and the JSON Schema at `../schema/card.v0.1.json`.\n\n## License\n\nApache-2.0. The cards corpus bundled into the published package\n(`dist/_corpus/`) is CC-BY 4.0 — its `LICENSE` travels with it; attribution to\nAtomira Technologies, S.L. and the Lemma card authors.\n","readmeFilename":"README.md"}