Skip to main content
Glama
coladapo

Librarian MCP Server

by coladapo
README.md
# Librarian MCP Server

An intelligent document management MCP server that leverages mental models and orchestration patterns to provide context-aware document storage, retrieval, and analysis.

## Overview

The Librarian MCP Server is part of the cos mcp ecosystem and implements sophisticated document management capabilities using the Model Context Protocol. It features:

- **Intelligent Classification**: Multi-dimensional document analysis
- **Mental Model Integration**: Leverages frameworks from the MCP Orchestrator
- **Proactive Assistance**: Pattern detection and organization suggestions
- **Flexible Storage**: Adapter pattern for multiple storage backends
- **Semantic Search**: Natural language document retrieval

## Architecture

Built using patterns from the MCP Orchestrator:
- Classification Engine for multi-dimensional analysis
- Intent Router for operation routing
- Storage Adapters for backend flexibility
- Proactive patterns for intelligent suggestions

See [ARCHITECTURE.md](./ARCHITECTURE.md) for detailed design documentation.

## Installation

```bash
npm install
npm run build
```

## Usage

### Run the Server

```bash
npm start
```

### Configure with Claude Desktop

Add to your Claude Desktop configuration:

```json
{
  "mcpServers": {
    "librarian": {
      "command": "node",
      "args": ["/path/to/librarian/dist/index.js"]
    }
  }
}
```

## Available Tools

### Document Management

- **store_document**: Store documents with automatic classification
- **search_documents**: Search using natural language or filters
- **get_document**: Retrieve specific documents
- **update_document**: Update document content or metadata
- **delete_document**: Remove documents from library

### Analysis & Organization

- **analyze_document**: Apply mental models for document analysis
- **organize_library**: AI-driven document organization

## Examples

### Store a Document
```javascript
{
  "tool": "store_document",
  "arguments": {
    "content": "# Project Plan\n\nThis document outlines...",
    "metadata": {
      "title": "Q1 2024 Project Plan",
      "author": "John Doe",
      "tags": ["planning", "quarterly"]
    },
    "options": {
      "autoClassify": true,
      "detectDuplicates": true
    }
  }
}
```

### Search Documents
```javascript
{
  "tool": "search_documents",
  "arguments": {
    "query": "project plans from last quarter",
    "filters": {
      "domain": ["business"],
      "dateRange": {
        "start": "2024-01-01"
      }
    },
    "options": {
      "semantic": true,
      "limit": 5
    }
  }
}
```

### Analyze Document
```javascript
{
  "tool": "analyze_document",
  "arguments": {
    "documentId": "doc-123",
    "analysisType": "summary",
    "framework": "swot"
  }
}
```

## Integration with MCP Orchestrator

The Librarian can be integrated with the MCP Orchestrator for advanced workflows:

1. Use orchestrator to analyze complex queries
2. Route document operations through mental models
3. Chain multiple operations for sophisticated workflows

Example orchestrated workflow:
```
1. Gather intent about document needs
2. Search relevant documents
3. Analyze using appropriate mental models
4. Organize based on patterns
5. Generate insights
```

## Development

### Project Structure
```
librarian/
├── src/
│   ├── adapters/      # Storage backend adapters
│   ├── engines/       # Classification and analysis engines
│   ├── tools/         # MCP tool definitions
│   ├── types.ts       # TypeScript type definitions
│   ├── LibrarianServer.ts  # Main server implementation
│   └── index.ts       # Entry point
├── ARCHITECTURE.md    # Detailed architecture documentation
├── package.json
└── README.md
```

### Adding New Features

1. **New Storage Backend**: Implement the `StorageAdapter` interface
2. **New Analysis Type**: Add to `AnalysisType` enum and implement handler
3. **New Organization Method**: Add to `OrganizeMethod` and implement logic

### Testing

```bash
# Run in development mode
npm run dev

# Test with MCP Inspector
npx @modelcontextprotocol/inspector dist/index.js
```

## Future Enhancements

- [ ] PostgreSQL adapter with vector embeddings
- [ ] Integration with filesystem MCP for local files
- [ ] Browser MCP integration for web content
- [ ] Real-time collaboration features
- [ ] Advanced duplicate detection
- [ ] Custom mental model definitions
- [ ] Batch import/export capabilities

## License

MIT

## Contributing

Contributions welcome! Please follow the existing patterns and ensure TypeScript compilation succeeds before submitting PRs.

TDQS

B3.3/5.0

Scored across 7 tools

Disambiguation5/5

Each tool addresses a distinct operation on documents (CRUD, search, analysis, organization) with no overlapping purposes, ensuring clear differentiation.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern (e.g., store_document, search_documents), with 'organize_library' also conforming, providing predictability.

Tool Count5/5

Seven tools is well-scoped for a document library server, covering essential CRUD operations plus analysis and organization without unnecessary bloat.

Completeness4/5

The set covers core lifecycle and value-added features, but an explicit list_all or batch operation tool is missing, relying on search with unfiltered queries as a workaround.

Maintenance

ActivityInactive
ResponsivenessNo issues