Skip to main content
Glama
telota

bbaw-dse-mcp

by telota

bbaw-dse-mcp

An MCP server for dialogical, exploratory access to digital scholarly editions.

DHd2026 Poster: Agenten im Dienst der Edition

Overview

Instead of complex search forms and navigation structures, this MCP server enables natural-language conversation with digital scholarly editions. An AI agent translates questions like "Who was important for Schleiermacher in 1810?" into structured database queries — and maintains conversational context across follow-up questions.

The server aggregates three editions from BBAW/TELOTA into a single MCP endpoint using FastMCP composition:

Edition

Prefix

Backend

Content

schleiermacher digital

sd_

eXist-db

Letters, diaries, lectures, chronology

Praktiken der Monarchie

mop_

eXist-db

Documents on Prussian monarchy and governance

correspSearch

cs_

REST API

Cross-edition correspondence network search

Related MCP server: barracuda-mcp

Available Tools

Schleiermacher Digital (sd_*) — 19 tools

Tool

Description

sd_search_documents

Fulltext search with facets (document type, year, date range)

sd_filter_letters

Filter letters by sender, receiver, place, period

sd_get_correspondent_stats

Correspondent statistics for network analysis

sd_get_document_by_id

Retrieve a complete document as Markdown

sd_get_document_passages

Retrieve text passages from a document

sd_search_register

Lucene fulltext search in person/place/work registers

sd_get_register_entry

Detailed register entry with optional mention summary

sd_get_diary_entry / sd_get_diary_entries

Diary entries by date or date range

sd_get_chronology_entry / sd_get_chronology_entries / sd_get_chronology_year

Chronology lookup

sd_list_collections / sd_list_collection_contents

Browse collection structure

sd_get_collection_stats / sd_get_file_info

Collection and file metadata

sd_execute_xquery

Execute raw XQuery

sd_check_database_connection

Health check

sd_get_raw_document_by_id / sd_get_raw_document_by_path

Raw XML retrieval

Praktiken der Monarchie (mop_*) — 17 tools

Tool

Description

mop_browse_documents

Browse files and subcollections

mop_search_documents

Fulltext search in MoP documents

mop_get_document

Retrieve a complete document

mop_search_register / mop_get_register_entry

Search registers (persons, places, institutions, courts, works, offices)

mop_search_biogramme / mop_get_biogramm_by_id

Search and retrieve detailed biographies

mop_extract_family_network

Extract family network from a biography

mop_get_residential_topography / mop_search_residential_topography / mop_list_available_wohntopo_years

Residential topography data

mop_search_adjutanten_journals / mop_get_adjutanten_journal_entry / mop_list_adjutanten_by_monarch

Court adjutant journals

mop_execute_xquery

Execute raw XQuery

mop_check_database_connection

Health check

Tool

Description

cs_search_correspondences

Cross-edition correspondence search

cs_get_edition_info

Information about a correspSearch edition

cs_search_correspondent_network

Analyze correspondence network of a person

cs_search_for_gnd_id

Look up GND authority IDs by name

cs_search_for_geonames_id / cs_get_place_geonames_id

Look up GeoNames IDs

cs_search_wikidata_entity / cs_search_for_wikidata_occupation

Wikidata lookups

Installation

# Clone the repository
git clone https://github.com/telota/bbaw-dse-mcp.git
cd bbaw-dse-mcp

# Install with uv (recommended)
uv sync

Requires Python 3.11+.

Configuration

Configuration uses environment variables (prefix EDITIONS_). Create a .env file:

# Schleiermacher Digital eXist-db
EDITIONS_SD_URL=http://localhost:8080
EDITIONS_SD_USERNAME=admin
EDITIONS_SD_PASSWORD=

# Praktiken der Monarchie eXist-db
EDITIONS_AB_URL=https://actaborussica.bbaw.de
EDITIONS_AB_USERNAME=
EDITIONS_AB_PASSWORD=

# correspSearch API (no auth required)
EDITIONS_CS_API_URL=https://correspsearch.net/api/v2.0

# Optional: GeoNames API
EDITIONS_GEONAMES_USERNAME=

# Optional: Anthropic API (for research agent)
EDITIONS_ANTHROPIC_API_KEY=

Usage

Running the server

uv run bbaw-dse-mcp

Claude Desktop

Add to your claude_desktop_config.json:

{
  "mcpServers": {
    "editions": {
      "command": "uv",
      "args": ["run", "bbaw-dse-mcp"],
      "cwd": "/path/to/bbaw-dse-mcp"
    }
  }
}

Example Conversation

User: Search for letters mentioning Humboldt.

Agent: → sd_search_documents(query="Humboldt", doc_type="letters")
       Found 23 letters mentioning Humboldt, mostly from 1810 —
       the year of the Berlin university founding...

User: Who was important for Schleiermacher in 1810?

Agent: → sd_get_correspondent_stats(year=1810)
       Based on letter frequency, the most important correspondents in 1810:
       1. Charlotte Schleiermacher (15 letters) — his sister
       2. Wilhelm von Humboldt (8 letters) — central figure in university reform
       ...

User: Can we trace Humboldt's correspondence network beyond this edition?

Agent: → cs_search_correspondent_network(name="Humboldt, Wilhelm von")
       Cross-edition network across 12 editions: ...

Tech Stack

  • FastMCP 2.x — Python MCP server framework

  • httpx — Async HTTP client for eXist-db REST API

  • lxml — TEI-XML parsing

  • Pydantic v2 — Data models and settings

Documentation

License

MIT

Author

Tim Westphal, BBAW TELOTA

A
license - permissive license
-
quality - not tested
D
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

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

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/telota/bbaw-dse-mcp'

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