Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
CREPE_TAVILY_API_KEYNoEnables web_search via Tavily; graceful warning if absent
CREPE_LIBREOFFICE_PATHNoPath to a soffice/libreoffice executable, overriding auto-detection. Required on Linux only if auto-detection fails.
CREPE_ASPOSE_LICENSE_PATHNoPath to Aspose .lic file for watermark-free PPTX→PNG export on the aspose fallback path. Evaluation mode used if unset.
CREPE_HEADLESS_BROWSER_PATHNoPath to Chromium-compatible browser for fetch_webpage. Falls back to urllib if unset.

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{
  "listChanged": true
}
logging
{}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
extensions
{
  "io.modelcontextprotocol/ui": {}
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
create_presentationA

Create a new, empty presentation; returns presentation_id, required by every other Group-A tool. All title-slide metadata is set here: title, optional subtitle, author, institute, date.

get_presentationA

Return a presentation's metadata, ordered slide list (index, id, title, 200-char content preview), and which compiled artifacts exist.

get_slideA

Return the full content of a single slide by its zero-based index.

set_slideA

Add, replace, or insert a slide.

insert=False (default): index < slide count -> replace in place; index >= slide count -> append. insert=True: inserts at index, shifting that slide and everything after it later (index >= slide count still appends). Combine with delete_slide to move a slide to a new position.

content is raw Pandoc Markdown -- also supports speaker notes by name alone. Exact syntax for three Beamer-specific conventions: Incremental bullets : > - item Section divider : content is ONLY "# Section Title", nothing else Two-column layout : :::: {.columns}\n::: {.column width="50%"}\nLeft\n:::\n::: {.column width="50%"}\nRight\n:::\n::::

expected_slide_count : optional. If a concurrent call already changed the deck since you last checked, this fails with a clear error instead of silently landing at an unintended position -- get_presentation to refresh, then retry. Recommended when issuing several set_slide calls for the same presentation without waiting for each result first.

delete_slideA

Remove a slide by index. Slides after it shift down by one.

expected_slide_count : optional, same stale-state guard as set_slide.

update_presentation_metadataA

Update title-slide metadata (title/subtitle/author/institute/date) on an existing presentation. Only fields given a value are changed.

list_presentationsA

List every presentation currently held in memory.

export_presentation_sourceA

Return the pandoc source (slides Markdown + config.yml) this presentation compiles from.

output_dir : if given (absolute path), also writes slides.md/config.yml there. theme/highlight_style : same meaning as compile_presentation.

import_presentation_sourceA

Replace a presentation's slides by parsing pandoc slide Markdown. Splits on '##' (slide) and bare '#' (section-divider) headings, ignoring '#' inside fenced code blocks.

presentation_id must already exist. Every slide it currently has is replaced; metadata is untouched. Exactly one of markdown (inline content) or source_path (absolute path to a .md file) must be given.

compile_presentationA

Compile the in-memory presentation to PDF or PPTX, writing directly to output_path (absolute). Call render_slides_as_pngs afterwards to validate visually.

format : 'pdf' (Beamer/lualatex) or 'pptx' (PowerPoint). theme : any Beamer theme name installed on this system (PDF only), default 'moloch'. highlight_style : code highlight style, default 'tango'. reference_doc : path to a .pptx template (PPTX only, optional).

render_slides_as_pngsA

Convert a compiled artifact to a numbered PNG sequence for visual validation. format must match a previously compiled artifact.

cleanup_presentationB

Delete a presentation's in-memory state and on-disk scratch dir.

academic_searchA

Search Semantic Scholar for academic papers. No API key required.

Returns up to limit results with title, link (open-access PDF preferred), and truncated abstract (400 chars).

web_searchA

Search the web via the Tavily API.

Requires CREPE_TAVILY_API_KEY in the environment. Returns an empty result with a warning field (not an error) if the key is absent, so the agent can surface the message gracefully.

wikipedia_searchA

Search Wikipedia and return matching article titles, URLs, and excerpts.

Pass the returned title to wikipedia_read to fetch the full article.

wikipedia_readA

Fetch the full plain-text body of a Wikipedia article.

title should be the exact article title from wikipedia_search. Content is truncated to max_chars characters (default 15 000).

fetch_webpageA

Extract readable plain text from a URL (http/https only). Uses the browser at CREPE_HEADLESS_BROWSER_PATH (--headless=new --dump-dom) if set, else falls back to urllib + HTML stripping with a warning.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

Latest Blog Posts

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/mariolpantunes/crepe-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server