mcp-presentation
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@mcp-presentationcreate a new presentation project and build it as a PDF"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
mcp-presentation
MCP-сервер для сборки презентаций (PDF / web) с task-based async pipeline.
Пакеты (PyPI names)
Пакет | Import | Роль |
|
| FastMCP server + TaskStore + CLI |
|
| sessions / workspaces (rusqlite) |
|
| GitPort / gix |
|
| ContainerRuntime / bollard |
Стек: Python 3.14 · FastMCP · Rust/PyO3 · gix · bollard · rusqlite · Pydantic.
Git v1: init_bare / add_worktree / commit — без CLI, без push (ADR-0011).
Docker: DooD socket через bollard — без docker CLI (ADR-0012).
Deploy v1: локальный copy в out/deployed/ (ADR-0007).
Related MCP server: marp-agent-mcp
Run with uv tool
From a checkout (builds native extensions via maturin as needed):
uv sync
uv tool run --from . mcp-presentationAfter packages are on an index:
uv tool run --from mcp-presentation-core mcp-presentation
# or install once:
uv tool install mcp-presentation-core
mcp-presentationCursor / stdio mcp.json (local editable):
{
"mcpServers": {
"mcp-presentation": {
"command": "uv",
"args": ["tool", "run", "--from", "/absolute/path/to/mcp-presentation", "mcp-presentation"],
"env": {
"MCP_PRESENTATION_STATE": "/absolute/path/to/data/state",
"MCP_PRESENTATION_PROJECTS": "/absolute/path/to/data/projects",
"MCP_PRESENTATION_WORKSPACES": "/absolute/path/to/data/workspaces"
}
}
}
}Happy path (MCP tools)
create_session
→ create_project(project_id)
→ checkout_workspace(session_id, project_id) # gix worktree + state
→ save_presentation_ir(session_id, ir_json) # Pydantic validate
→ commit_workspace(session_id, …)
→ build_presentation(session_id, "pdf"|"web"|"web-pdf") # waits; refreshes out/slides/
→ get_slide_image(session_id, slide=1) # 1=title; JSON: path/available/index_note + Image
→ deploy_presentation(session_id) # local_copy under out/deployed/ (not a URL)save_presentation_ir returns rebuild_required: true — slide PNGs stay stale until rebuild.
workspace_id equals the folder name under workspaces/.
Preferred wait UX: tool itself waits (and with MCP task=True also pushes status notifications).
get_build_status remains for inspection only.
Пример IR: examples/demo/presentation.ir.json
JSON Schema: schemas/presentation.ir.schema.json
ADR
→ docs/adr/ · overview docs/architecture/OVERVIEW.md
Release
Тег v* → .github/workflows/release.yml:
Docker-образы в GHCR + docs (GitHub Pages и assets релиза).
git tag v0.1.0 && git push origin v0.1.0Dev
uv venv -p 3.14 .venv && source .venv/bin/activate
uv sync --extra dev
(cd packages/mcp-presentation-state && maturin develop)
(cd packages/mcp-presentation-git && maturin develop)
(cd packages/mcp-presentation-docker && maturin develop)
maturin develop
pytest -q
make cov-rust # per-crate cargo-llvm-cov, fail-under 98%Lint / format
make fmt # ruff + rustfmt
make lint # ruff + mypy + rustfmt --check + clippy
make check # lint + pytest + cov-rust
make cov-py # Python coverage (fail-under 98)
make cov-rust
make docker-build # latex-builder + web-builder imagesBuilder images + worker
→ infra/
build_presentation / deploy_presentation ставят задачу в SQLite; при MCP
task=True tool ждёт ту же строку и шлёт notifications/tasks/status.
BuildWorker делает claim_next, валидирует IR, компилирует в .tex/.md
при необходимости, запускает образ через bollard.
Образы: MCP_LATEX_IMAGE / MCP_WEB_IMAGE.
Диск
state/tasks.db state/sessions.db
projects/<id>.git/
workspaces/<ws_id>/This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/hewimetall/mcp-presentation'
If you have feedback or need assistance with the MCP directory API, please join our Discord server