oyemi-mcp 0.1.0
MCP Server for Oyemi semantic lexicon - deterministic word-to-code mapping with valence analysis
Requires Python: >=3.10
Keywords: ai-tools, anthropic, claude, mcp, model-context-protocol, nlp, oyemi, semantic-analysis, sentiment, valence, wordnet

# Oyemi MCP Server

MCP (Model Context Protocol) server for the Oyemi semantic lexicon. Provides deterministic word-to-code mapping and valence analysis for AI agents like Claude, ChatGPT, and Gemini.

## Features

- **Semantic Encoding**: Convert words to deterministic semantic codes
- **Valence Analysis**: Analyze text sentiment using lexicon-based valence
- **Semantic Similarity**: Measure how similar two words are
- **Synonym/Antonym Lookup**: Find related words
- **Zero Runtime Dependencies**: No external NLP libraries needed at runtime

## Installation

```bash
pip install oyemi-mcp
```

Or install from source:

```bash
git clone https://github.com/Osseni94/oyemi-mcp
cd oyemi-mcp
pip install -e .
```

## Configuration

### Claude Desktop

Add to your `claude_desktop_config.json`:

```json
{
  "mcpServers": {
    "oyemi": {
      "command": "oyemi-mcp"
    }
  }
}
```

### Claude Code

Add to your MCP settings:

```json
{
  "mcpServers": {
    "oyemi": {
      "command": "oyemi-mcp"
    }
  }
}
```

## Available Tools

### `encode_word`
Encode a word to its semantic code.

```
encode_word("happy")
-> {
    "word": "happy",
    "code": "1023-00012-3-2-1",
    "pos": "adjective",
    "abstractness": "abstract",
    "valence": "positive"
}
```

### `analyze_text`
Analyze the valence/sentiment of text.

```
analyze_text("I feel hopeful but anxious about the future")
-> {
    "valence_score": 0.0,
    "sentiment": "neutral",
    "positive_words": ["hopeful"],
    "negative_words": ["anxious"],
    ...
}
```

### `semantic_similarity`
Compare two words semantically.

```
semantic_similarity("happy", "joyful")
-> {
    "similarity": 0.85,
    "relationship": "very similar"
}
```

### `find_synonyms`
Find synonyms for a word.

```
find_synonyms("happy")
-> {
    "synonyms": ["glad", "felicitous", "well-chosen"]
}
```

### `find_antonyms`
Find antonyms for a word.

```
find_antonyms("happy")
-> {
    "antonyms": ["unhappy"]
}
```

### `batch_encode`
Encode multiple words at once.

```
batch_encode(["happy", "sad", "neutral"])
-> {
    "results": [
        {"word": "happy", "valence": "positive"},
        {"word": "sad", "valence": "negative"},
        {"word": "neutral", "valence": "neutral"}
    ]
}
```

### `get_lexicon_info`
Get information about the lexicon.

```
get_lexicon_info()
-> {
    "name": "Oyemi",
    "version": "3.2.0",
    "word_count": 145014
}
```

## Code Format

Oyemi codes follow the format `HHHH-LLLLL-P-A-V`:

| Component | Description | Values |
|-----------|-------------|--------|
| HHHH | Semantic superclass | 4-digit category code |
| LLLLL | Synset ID | 5-digit unique identifier |
| P | Part of speech | 1=noun, 2=verb, 3=adj, 4=adv |
| A | Abstractness | 0=concrete, 1=mixed, 2=abstract |
| V | Valence | 0=neutral, 1=positive, 2=negative |

## Use Cases

- **AI Sentiment Analysis**: Let AI agents understand emotional tone
- **Semantic Grounding**: Provide concrete valence scores instead of guessing
- **Text Analysis**: Analyze documents, reviews, feedback
- **Word Relationships**: Find synonyms, antonyms, similar words

## License

MIT License

## Author

Kaossara Osseni - [grandnasser.com](https://grandnasser.com)