MCP Server

Oyemi MCP Server

Deterministic semantic word encoding and valence analysis for Claude, ChatGPT, and Gemini.

What is MCP?

The Model Context Protocol (MCP) is an open standard that allows AI assistants like Claude, ChatGPT, and Gemini to use external tools. Oyemi MCP Server brings deterministic semantic analysis capabilities to any MCP-compatible AI agent.

145K+ Word Lexicon

Comprehensive English vocabulary with semantic codes.

Valence Analysis

Analyze text sentiment with deterministic scoring.

Zero Dependencies

No external NLP libraries - fully self-contained.

100% Free

Open source, no API keys, no usage limits.

Installation

Install the Oyemi MCP Server from PyPI:

pip install oyemi-mcp

This automatically installs the oyemi library with its 145K+ word lexicon.

Configuration

Claude Desktop

Add to your Claude Desktop config file:

macOS/Linux: ~/.config/claude/claude_desktop_config.json

Windows: %APPDATA%\Claude\claude_desktop_config.json

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

Claude Code

claude mcp add oyemi oyemi-mcp

Quick Start

Once configured, you can ask Claude things like:

  • "What's the semantic code for the word 'happy'?"
  • "Analyze the sentiment of this text: [paste text]"
  • "How similar are the words 'happy' and 'joyful'?"
  • "Find synonyms for 'fear'"
  • "What are the antonyms of 'good'?"

Available Tools

encode_word

Free

Encode a word to its semantic code(s). Returns superclass, POS, abstractness, and valence.

encode_word("happy")

# Returns:
{
  "word": "happy",
  "code": "3010-00001-3-1-1",
  "pos": "adjective",
  "abstractness": "mixed",
  "valence": "positive"
}

analyze_text

Free

Analyze the valence/sentiment of a text string. Returns score, word lists, and percentages.

analyze_text("I feel hopeful but anxious about the future")

# Returns:
{
  "valence_score": 0.0,
  "sentiment": "neutral",
  "positive_words": ["hopeful"],
  "negative_words": ["anxious"],
  "positive_pct": 25.0,
  "negative_pct": 25.0
}

semantic_similarity

Free

Calculate semantic similarity between two words (0-1 scale).

semantic_similarity("happy", "joyful")

# Returns:
{
  "word1": "happy",
  "word2": "joyful",
  "similarity": 0.9966,
  "relationship": "very similar"
}

find_synonyms

Free

Find synonyms for a word using WordNet synset matching.

find_synonyms("happy", limit=5)

# Returns:
{
  "word": "happy",
  "synonyms": ["glad", "felicitous", "well-chosen"],
  "count": 3
}

find_antonyms

Free

Find antonyms for a word.

find_antonyms("happy")

# Returns:
{
  "word": "happy",
  "antonyms": ["unhappy"],
  "count": 1
}

batch_encode

Free

Encode multiple words at once (up to 100 words).

batch_encode(["happy", "sad", "neutral"])

# Returns codes and valence for each word

get_lexicon_info

Free

Get information about the Oyemi lexicon.

get_lexicon_info()

# Returns:
{
  "name": "Oyemi",
  "version": "3.2.0",
  "word_count": 145014
}

Code Format

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

HHHHSuperclass - Semantic category (4 digits)
LLLLLSynset ID - Specific meaning (5 digits)
PPart of Speech - 1=noun, 2=verb, 3=adj, 4=adv
AAbstractness - 0=concrete, 1=mixed, 2=abstract
VValence - 0=neutral, 1=positive, 2=negative

Support