Earth616 Vocabulary Service
by LA3D
README.md
# Earth616 MCP Vocabulary Service
A Model Context Protocol (MCP) server for accessing the Earth616 Defense Supply Chain and Documentation Ontology (DSCDO).
## Quick Start
### Option 1: Local Development
1. **Build the service:**
```bash
npm install
npm run build
```
2. **Test the service locally:**
```bash
# Test that it starts up
node dist/index.js
# Should output: "Earth616 MCP Vocabulary Server running on stdio"
# Press Ctrl+C to exit
```
### Option 2: Docker Development (Recommended)
1. **Start the full stack:**
```bash
npm run docker:up
```
This starts:
- Nginx server on port 8080 (serving example ontology files)
- MCP vocabulary service (connected to nginx)
2. **Test the stack:**
```bash
# Test ontology server
curl http://localhost:8080/health
# View example files
curl http://localhost:8080/example/
```
3. **View logs:**
```bash
npm run docker:logs
```
4. **Stop the stack:**
```bash
npm run docker:down
```
3. **Connect to Claude Desktop:**
Copy the configuration from `claude_desktop_config.json` to your Claude Desktop configuration file:
- **Mac:** `~/Library/Application Support/Claude/claude_desktop_config.json`
- **Windows:** `%APPDATA%\Claude\claude_desktop_config.json`
Or merge with existing config:
```json
{
"mcpServers": {
"earth616-vocab": {
"command": "node",
"args": ["/full/path/to/earth616_mcp_vocab_service/dist/index.js"],
"env": {
"NODE_ENV": "development"
}
}
}
}
```
4. **Test in Claude Desktop:**
After restarting Claude Desktop, you should be able to use these tools:
- `hello_vocab` - Simple test tool
- `get_ontology_info` - Basic ontology information
- `test_ontology_server` - Test connectivity to the ontology file server
- `list_example_files` - List available example files
## Current Status
This is a minimal MCP server with Docker integration. Available tools:
- **hello_vocab**: Echo back a message (testing connectivity)
- **get_ontology_info**: Get basic information about the Earth616 ontology
- **test_ontology_server**: Test connectivity to the ontology file server
- **list_example_files**: List available example ontology files
The Docker setup provides:
- **nginx**: Serves ontology files with proper content types
- **MCP service**: Connects to nginx and provides vocabulary access
- **Health checks**: `/health` endpoint for service monitoring
## Next Steps
Following the iterative approach outlined in `VOCAB_SERVICE_PLAN.md`, we'll gradually add:
1. File-based vocabulary term lookup
2. URI resolution capabilities
3. W3C PROF Profile navigation
4. Complete vocabulary dataset access
5. Cross-layer navigation tools
## Development
### Local Development
- `npm run dev` - Watch mode for development
- `npm run build` - Build TypeScript
- `npm start` - Run the built server
### Docker Development
- `npm run docker:build` - Build Docker image
- `npm run docker:up` - Start full stack (detached)
- `npm run docker:down` - Stop full stack
- `npm run docker:logs` - View MCP service logs
- `npm run docker:test` - Quick health check test
### Development Workflow
1. Make changes to `src/index.ts`
2. `npm run docker:up` to test with full stack
3. Use Claude Desktop tools to test functionality
4. `npm run docker:logs` to debug issues
5. `npm run docker:down` when done
The server runs on stdio and communicates with Claude Desktop via the MCP protocol. The Docker setup simulates the full production environment locally.TDQS
B3.4/5.0
Scored across 18 tools
Disambiguation4/5
Most tools have clear distinct purposes, but list_all_files overlaps with specific list functions and some read functions are similar across file types, causing minor potential confusion.
Naming Consistency4/5
Tool names follow a consistent verb_noun snake_case pattern for the most part, though 'hello_vocab' uses a non-verb greeting, slightly breaking the pattern.
Tool Count4/5
18 tools is reasonable for a vocabulary service covering multiple file types and operations, though slightly on the higher side; each tool seems justified.
Completeness4/5
The tool set covers browsing and reading of ontologies, contexts, shapes, and URIs, but lacks a tool to list all vocabulary terms, leaving a minor gap in discoverability.
Maintenance
ActivityInactive
ResponsivenessNo issues