Osseni94/oyemi-mcp
🐍 🏠 - Deterministic semantic word encoding and valence/sentiment analysis using 145K+ word lexicon. Provides word-to-code mapping, semantic similarity, synonym/antonym lookup with zero runtime NLP dependencies.
Quick Install
{
"mcpServers": {
"osseni94-oyemi-mcp": {
"command": "npx",
"args": [
"-y",
"osseni94-oyemi-mcp"
]
}
}
}Using an AI coding agent (Claude Code, Cursor, etc.)? Copy a ready-made prompt that tells it to fetch the setup instructions and install this server for you.
Documentation Overview
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
pip install oyemi-mcp
Or install from source:
git clone https://github.com/Osseni94/oyemi-mcp
cd oyemi-mcp
pip install -e .
Configuration
Claude Desktop
Add to your claude_desktop_config.json:
{
"mcpServers": {
"oyemi": {
"command": "oyemi-mcp"
}
}
}
Claude Code
Add to your MCP settings:
{
"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