Skip to main content

pullini-mcp

A local stdio MCP connector that lets an agent create, read, update, delete and share Pullini artifacts, and generate self-study quizzes and static Q&A sets about wiki pages or artifacts, over the authenticated artifact REST API.

The connector runs on the agent's machine. It reads its configuration from the environment and needs no ASGI or OAuth infrastructure on the Pullini host (decision D-25).

Install

Runs with uv, no install step required:

uvx pullini-mcp

Or install it into an environment:

uv tool install pullini-mcp   # or: pip install pullini-mcp

Configure

Two environment variables:

Variable Description
PULLINI_URL Base URL of your Pullini host, e.g. https://pullini.example.com.
PULLINI_TOKEN A personal access token created at /settings/tokens/ (pln_…).

The token is sent as Authorization: Bearer <token>; all resources are scoped to the token's owner. Treat the raw secret like a password.

MCP client config

The client launches the server and passes the two variables. The examples below are for opencode (opencode.jsonc); adapt the shape to your own MCP client. The same example lives in mcp.example.json.

From a local checkout (before the package is published): point --directory at the mcp/ folder of your clone.

{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "pullini": {
      "type": "local",
      "command": ["uv", "run", "--directory", "/path/to/pullini/mcp", "pullini-mcp"],
      "enabled": true,
      "environment": {
        "PULLINI_URL": "http://localhost:8000",
        "PULLINI_TOKEN": "pln_xxxxxxxx_yyyyyyyyyyyyyyyyyyyyyyyy"
      }
    }
  }
}

From PyPI (once published):

{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "pullini": {
      "type": "local",
      "command": ["uvx", "pullini-mcp"],
      "enabled": true,
      "environment": {
        "PULLINI_URL": "https://pullini.example.com",
        "PULLINI_TOKEN": "pln_xxxxxxxx_yyyyyyyyyyyyyyyyyyyyyyyy"
      }
    }
  }
}

Tools

Tool What it does
store_artifact Create an artifact, or overwrite one when slug is given.
list_artifacts List the token owner's artifacts.
get_artifact Fetch one artifact (source Markdown, rendered HTML, plain text).
update_artifact Change an artifact's title and/or content.
delete_artifact Delete an artifact.
share_artifact Enable or revoke the unlisted share link.
list_pages List readable wiki pages, optionally for one project.
get_page Fetch one wiki page's source Markdown.
create_quiz Create or replace a quiz for one page or artifact.
get_quiz Fetch one quiz (questions and your scores).
list_quizzes List the token owner's quizzes.
delete_quiz Delete a quiz.
create_qanda Create or replace a static Q&A set for one page or artifact.
get_qanda Fetch one Q&A set (questions and answers).
list_qanda List the token owner's Q&A sets.
delete_qanda Delete a Q&A set.

content is Markdown; fenced ```mermaid blocks render as diagrams. Artifacts are private by default: share_artifact returns a read-only share_url anyone with the link can open, and revoking clears it.

Quizzes are private and self-study: fetch a page with get_page, write up to 10 multiple-choice questions and pass them to create_quiz with either a page={"project", "path"} or an artifact slug target. Creating again for the same target replaces it; read scores back from get_quiz/list_quizzes.

Q&A sets are private, static FAQs: write up to 50 {question, answer} entries and pass them to create_qanda with a page or artifact target. Answers are Markdown, rendered read-only; nothing is scored. Creating again for the same target replaces it; read sets back from get_qanda/list_qanda.

Development

uv sync
uv run ruff check .
uv run ruff format --check .
uv run pytest

Tests mock the HTTP transport with httpx.MockTransport, so no Pullini host is needed.

Metadata

Release files for pullini-mcp 0.9.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pullini-mcp 0.9.0
File Size Uploaded
pullini_mcp-0.9.0.tar.gz 88.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for pullini-mcp 0.9.0
File Interpreter ABI Platform
pullini_mcp-0.9.0-py3-none-any.whl Python 3 none any Details

Total release size: 99.0 kB

Release files / pullini_mcp-0.9.0.tar.gz

Download URL pullini_mcp-0.9.0.tar.gz
Size 88.5 kB
Tags Source
SHA-256 checksum
How to use checksums
3f6b5b9d3b96a63cf6d29c4c25776850dfbc06c57f69e5521134255fd1304105
BLAKE2b-256 checksum
How to use checksums
90981d5bdb0b91d566481f78abbc7c046c747c160d4102bb0a7128820b892097
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 14, 2026.

Transparency log

Release files / pullini_mcp-0.9.0-py3-none-any.whl

Download URL pullini_mcp-0.9.0-py3-none-any.whl
Size 10.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
f4cf1997fdf5c7bfa3b90f34fe33e39ccd4bca40cd1292181cb560dffa02184f
BLAKE2b-256 checksum
How to use checksums
c6317aebf7064b655a6428255edad8299fea5ab0a42130a0b1240608d4da08ea
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 14, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.9.0 This release

2 release files

0.8.1

2 release files

0.8.0

2 release files

0.7.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page