Skip to main content
Glama
qramarq

urbandictmcp

by qramarq

urbandictmcp

**this is not an official mcp for https://www.urbandictionary.com ** urbandictmcp is property of ZMachinery LLC by way of SHIPMB

A dependency-free MCP server that lets an MCP client look up Urban Dictionary definitions.

Urban Dictionary content is crowdsourced, so results may be explicit, offensive, wrong, or just extremely internet-shaped.

What It Does

urbandictmcp exposes Urban Dictionary lookups as Model Context Protocol (MCP) tools. It is meant to be launched by an MCP-compatible client, such as VS Code, Claude Desktop, Codex, or a custom Python client. The server runs locally over stdio and returns structured definition results that an AI assistant can call during a chat or agent workflow.

The project is intentionally small:

  • No runtime npm dependencies.

  • No database or background service.

  • No API key required.

  • Uses Node.js built-in APIs.

  • Talks to Urban Dictionary's public JSON endpoints when a lookup tool is called.

Related MCP server: scrapesearch-mcp

Tools

  • urban_dictionary_define: look up definitions for a word or phrase.

  • urban_dictionary_random: fetch random definitions.

  • urban_dictionary_defid: fetch a definition by Urban Dictionary definition ID.

Requirements

  • Node.js 18 or newer.

No npm install is required because the server only uses Node built-ins.

Run

npm start

The MCP server communicates over stdio, so it is meant to be launched by an MCP client.

You can also run it directly without npm:

node server.js

When run directly, the process waits for MCP JSON-RPC messages on stdin. A quiet terminal is expected.

VS Code Setup

Create .vscode/mcp.json in your project or add the same server entry to your VS Code user-level MCP configuration:

{
  "servers": {
    "urban-dictionary": {
      "type": "stdio",
      "command": "node",
      "args": [
        "C:\\your\\user\\file\\path\\locally"
      ]
    }
  },
  "inputs": []
}

Replace the args path with the absolute path to server.js on your machine.

Then in VS Code:

  1. Open the Command Palette.

  2. Run MCP: List Servers.

  3. Select urban-dictionary.

  4. Start or restart the server.

  5. Ask Copilot Chat or an agent to use one of the tools.

Example prompt:

Use urban_dictionary_define to define "yeet".

If the server is working, VS Code should call the local MCP tool instead of asking to fetch a web page manually.

Python Client Access

Python applications can access this server by launching it as a stdio MCP server with the official MCP Python SDK.

Install the SDK:

pip install "mcp[cli]"

Example Python client:

import asyncio

from mcp import ClientSession, StdioServerParameters
from mcp.client.stdio import stdio_client


SERVER_PATH = r"C:\\your\\user\\file\\path\\locally"


async def main():
    server_params = StdioServerParameters(
        command="node",
        args=[SERVER_PATH],
    )

    async with stdio_client(server_params) as (read, write):
        async with ClientSession(read, write) as session:
            await session.initialize()

            tools = await session.list_tools()
            print("Available tools:", [tool.name for tool in tools.tools])

            result = await session.call_tool(
                "urban_dictionary_define",
                arguments={"term": "yeet", "limit": 1},
            )

            for item in result.content:
                if item.type == "text":
                    print(item.text)


if __name__ == "__main__":
    asyncio.run(main())

This starts the Node.js MCP server as a child process, initializes an MCP session, lists the available tools, and calls urban_dictionary_define.

Generic MCP Client Config

Use the absolute path to server.js from this checkout:

{
  "mcpServers": {
    "urban-dictionary": {
      "command": "node",
      "args": [
        "C:\\your\\user\\file\\path\\locally"
      ]
    }
  }
}

Environment Variables

  • URBAN_DICTIONARY_API_BASE: override the API base URL. Defaults to https://api.urbandictionary.com/v0.

  • URBAN_DICTIONARY_TIMEOUT_MS: request timeout in milliseconds. Defaults to 10000.

Test

npm run smoke

Or run the smoke test directly:

node scripts\smoke-test.js

The smoke test uses a local fake Urban Dictionary API, so it does not need network access.

Notes

Urban Dictionary does not publish a formal public API contract. This server uses the commonly available JSON endpoints:

  • https://api.urbandictionary.com/v0/define?term=...

  • https://api.urbandictionary.com/v0/define?defid=...

  • https://api.urbandictionary.com/v0/random

Available Tools

3 tools
urban_dictionary_defidA

Fetch an Urban Dictionary definition by definition ID. Results are crowdsourced and may contain explicit or offensive language.

ParametersJSON Schema
NameRequiredDescriptionDefault
defidYesUrban Dictionary definition ID.

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Warns that results are crowdsourced and may contain explicit language. No annotations exist, so description carries burden. Could disclose that it's a read-only operation or mention data freshness.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences with front-loaded action and important warning. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Adequate for a simple fetch tool with one parameter. Warns about content, but could hint at return structure (e.g., 'returns definition text and examples').

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with a clear description. Description adds no additional parameter context beyond what schema provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clear verb ('Fetch') and resource ('definition') with explicit method ('by definition ID'). Distinct from sibling tools that fetch by word or random.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Implies usage when definition ID is known, but lacks explicit guidance on when to use this over siblings (e.g., 'use this if you have the ID, otherwise use define').

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

urban_dictionary_defineB

Look up definitions for a term on Urban Dictionary. Results are crowdsourced and may contain explicit or offensive language.

ParametersJSON Schema
NameRequiredDescriptionDefault
termYesThe word or phrase to define.
limitNoMaximum number of definitions to return.
sort_byNoSort definitions by vote score, newest written date, or the API's original order.top

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description discloses the crowdsourced and potentially offensive nature of results, which is a behavioral trait. However, it omits details about authentication, rate limits, error handling (e.g., term not found), or that results are paginated.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences with no fluff. Every sentence serves a purpose: stating function and issuing a content warning.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with no output schema, the description does not describe what the return value contains (e.g., list of definitions with fields like word, definition, example). It is insufficient for an agent to fully understand the tool's behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description adds no extra meaning beyond the schema's parameter descriptions, so it neither helps nor hinders.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action (look up definitions) and the resource (a term on Urban Dictionary). It distinguishes from sibling tools (defid and random) implicitly by focusing on term lookup, making the purpose specific.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives (e.g., defid for specific ID, random for random term). The warning about explicit content is not a usage guideline. Agent lacks context for selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

urban_dictionary_randomA

Fetch random Urban Dictionary definitions. Results are crowdsourced and may contain explicit or offensive language.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of random definitions to return.

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations exist, so the description carries the burden. It discloses that results are crowdsourced and may contain explicit language, which is a key behavioral trait, but fails to mention other aspects like API rate limits or randomness mechanism.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise: two sentences with no redundant information. The first sentence states the purpose, the second adds crucial context about content appropriateness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simplicity of the tool (one parameter, no output schema), the description is mostly complete. It could optionally mention the return format (array of definitions), but the core functionality is clearly conveyed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The single parameter 'limit' is fully described in the input schema with default, min, max, and description. The description adds no extra meaning beyond what the schema provides, so baseline score of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Fetch random') and the resource ('Urban Dictionary definitions'). It also warns about content nature, distinguishing from sibling tools like urban_dictionary_defid which fetch by specific ID.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description does not explicitly state when to use this tool over siblings. It implies use for random discovery, but no comparison or exclusion criteria are provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 3 tool updatesv0.1.0
    • First observedurban_dictionary_defid
    • First observedurban_dictionary_define
    • First observedurban_dictionary_random

TDQS

A4/5.0

Scored across 3 tools

Disambiguation5/5

Each tool targets a distinct retrieval method: by definition ID, by term, and random. No overlap in functionality.

Naming Consistency5/5

All tools follow a consistent `urban_dictionary_<operation>` pattern with lowercase underscore separation.

Tool Count5/5

Three tools cover the essential operations for an Urban Dictionary server: lookup by term, by ID, and random. This is well-scoped for the domain.

Completeness4/5

The core search and retrieval operations are covered. Minor gaps like trending or user contributions exist but are not critical for basic usage.

Maintenance

ActivitySlowing
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    B
    maintenance
    MCP server for querying Destiny 2 game data from Bungie's manifest. Provides tools for item lookup, search, filtering, perk rolls, and relationship traversal.
    2
    -
  • F
    license
    Not graded
    quality
    D
    maintenance
    MCP server that provides web search scraping from DuckDuckGo (with Mojeek fallback) and URL content fetching as markdown/text or raw HTML.
    1
    -
  • F
    license
    A
    quality
    B
    maintenance
    Enables users to list quote categories and retrieve random quotes from a local JSON file via MCP tools, with no API key required.
    2
    -
  • A
    license
    Not graded
    quality
    C
    maintenance
    Provides 20 essential tools including HTTP requests, web search, file I/O, shell commands, and persistent memory for any MCP client, with zero configuration required.
    MIT