Logeion-mcp-server

philipaidanbooth/Logeion-mcp-server

3.3

If you are the rightful owner of Logeion-mcp-server and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.

Logeion-mcp-server enables interaction with the Logeion dictionary for Ancient Latin and Greek through a Model Context Protocol (MCP) server.

Logeion MCP Server

License: MIT Python 3.8+ MCP Server spaCy

Logeion is a powerful dictionary for Ancient Latin and Greek, now available as an MCP (Model Context Protocol) server so that LLMs can interact with the dictionary functionality.

๐ŸŒŸ Features

  • Latin Dictionary Lookup: Search for Latin words with comprehensive definitions
  • Lemmatization Support: Automatically finds word lemmas using spaCy's Latin language model
  • SQLite Database: Fast, local database access for quick word lookups
  • MCP Integration: Seamlessly integrates with MCP-compatible clients and LLMs

๐Ÿš€ Quick Start

# Clone the repository
git clone https://github.com/yourusername/logeion-mcp-server.git
cd logeion-mcp-server

# Install dependencies
pip install -r requirements.txt

# Download spaCy model
python -m spacy download la_core_web_lg

# Run the server
python logeion.py

๐Ÿ“š Installation

Prerequisites

  • Python 3.8+
  • pip or conda

Setup

  1. Clone the repository:
git clone https://github.com/yourusername/logeion-mcp-server.git
cd logeion-mcp-server
  1. Create and activate a virtual environment:
python -m venv venv
source venv/bin/activate  # On Windows: venv\Scripts\activate
  1. Install dependencies:
pip install -r requirements.txt
  1. Download the Latin language model for spaCy:
python -m spacy download la_core_web_lg
  1. Download the database file:
    • The database file dvlg-wheel-mini.sqlite should be placed in the project root directory
    • This contains the Latin dictionary entries

๐Ÿ› ๏ธ Usage

Running the MCP Server

python logeion.py

The server runs on stdio transport by default, making it compatible with MCP clients.

MCP Tools

get_word(word: str)

Searches for a Latin word in the dictionary database.

Parameters:

  • word (str): The Latin word to search for

Returns:

  • success (bool): Whether the search was successful
  • word (str): The original search term
  • lemma (str, optional): The lemmatized form if found
  • results (list, optional): Database results if found
  • method (str): How the search was performed ("exact_match", "lemmatized", "none", "error")
  • error (str, optional): Error message if something went wrong

Example Usage:

# Search for "amare" (to love)
result = get_word("amare")

# Search for "amo" (I love) - will find the lemma "amare"
result = get_word("amo")

Database Schema

The server connects to a SQLite database with the following structure:

  • Table: Entries
  • Key Column: head - contains the Latin word forms
  • Additional columns: Various dictionary information (definitions, parts of speech, etc.)

๐Ÿงช Testing & Demo

Run Tests

python test_logeion.py

Run Demo

python demo.py

Explore Database

python explore_db.py

๐Ÿณ Docker Deployment

Quick Start with Docker

# Build and run
docker-compose up --build

# Or build manually
docker build -t logeion-mcp-server .
docker run -it --rm -v $(pwd)/dvlg-wheel-mini.sqlite:/app/dvlg-wheel-mini.sqlite:ro logeion-mcp-server

๐Ÿ—๏ธ Development

Project Structure

logeion-mcp-server/
โ”œโ”€โ”€ logeion.py          # Main MCP server implementation
โ”œโ”€โ”€ requirements.txt    # Python dependencies
โ”œโ”€โ”€ README.md          # This file
โ”œโ”€โ”€ LICENSE            # MIT License
โ”œโ”€โ”€ mcp-config.json    # MCP server configuration
โ”œโ”€โ”€ demo.py            # Demo script
โ”œโ”€โ”€ test_logeion.py    # Comprehensive test suite
โ”œโ”€โ”€ explore_db.py      # Database exploration utility
โ”œโ”€โ”€ Dockerfile         # Docker configuration
โ”œโ”€โ”€ docker-compose.yml # Docker Compose setup
โ””โ”€โ”€ venv/              # Virtual environment

Adding New Tools

To add new MCP tools, use the @mcp.tool() decorator:

@mcp.tool()
def your_new_tool(param1: str, param2: int):
    # Your tool implementation
    return {"result": "success"}

๐Ÿ“– Documentation

  • - Comprehensive deployment instructions
  • - Server configuration and metadata
  • - Tool documentation and examples

๐Ÿค Contributing

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

Development Setup

# Install development dependencies
pip install -r requirements.txt

# Run linting
flake8 .
black --check .
isort --check-only .

# Run tests with coverage
pytest test_logeion.py --cov=logeion

๐Ÿ“„ License

This project is licensed under the MIT License - see the file for details.

๐Ÿ†˜ Support

๐ŸŒ Community & Social

๐Ÿ™ Acknowledgments

  • Built with the MCP (Model Context Protocol) framework
  • Uses spaCy for Latin language processing with LatinCy by Patrick Burns
  • Integrates with the Logeion Latin dictionary database
  • Inspired by classical language education and digital humanities

Note: This MCP server provides access to Latin dictionary functionality through the Model Context Protocol, enabling LLMs to perform Latin word lookups and analysis.

Made with โค๏ธ for the classical language community