Skip to main content
Glama
sittiev

PawnDex MCP Server

by sittiev

PawnDex MCP Server

A Model Context Protocol (MCP) server for PawnDex, the Pawn package index for the SA-MP / open.mp ecosystem.

This server enables AI assistants (like Claude) to:

  • Search for Pawn packages with various filters.

  • Inspect detailed information about specific repositories, including releases and tags.

  • Retrieve global statistics and supported languages.

Tools

  1. search_packages: Search for packages using queries like mysql, is:official, user:openmultiplayer, etc.

  2. get_package: Get full details for a owner/repo combination.

  3. get_stats: View global PawnDex metrics.

  4. get_languages: List supported languages in the index.

Related MCP server: conda-meta-mcp

Installation

Add the following to your claude_desktop_config.json:

{
  "mcpServers": {
    "pawndex": {
      "command": "uv",
      "args": [
        "--directory",
        "/path/to/pawndex_mcp_server",
        "run",
        "pawndex_mcp_server"
      ]
    }
  }
}

Create a .mcp.json file in your project root:

{
  "mcpServers": {
    "pawndex": {
      "command": "uv",
      "args": [
        "--directory",
        "/path/to/pawndex_mcp_server",
        "run",
        "pawndex_mcp_server"
      ]
    }
  }
}

Or add via CLI:

claude mcp add pawndex -- uv --directory /path/to/pawndex_mcp_server run pawndex_mcp_server

Add to your opencode.jsonc:

{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "pawndex": {
      "type": "local",
      "command": [
        "uv",
        "--directory",
        "/path/to/pawndex_mcp_server",
        "run",
        "pawndex_mcp_server"
      ],
      "enabled": true
    }
  }
}

Add to your .gemini/settings.json:

{
  "mcpServers": {
    "pawndex": {
      "command": "uv",
      "args": ["--directory", "/path/to/pawndex_mcp_server", "run", "pawndex_mcp_server"]
    }
  }
}

Or add via CLI:

gemini mcp add pawndex -- uv --directory /path/to/pawndex_mcp_server run pawndex_mcp_server

Add to your ~/.codex/config.toml or project-scoped .codex/config.toml:

[mcp_servers.pawndex]
command = "uv"
args = ["--directory", "/path/to/pawndex_mcp_server", "run", "pawndex_mcp_server"]

Or add via CLI:

codex mcp add pawndex -- uv --directory /path/to/pawndex_mcp_server run pawndex_mcp_server

Development

Requires Python 3.11+.

# Install dependencies
uv sync

# Run the server locally (STDIO)
uv run pawndex_mcp_server

License

MIT

Available Tools

4 tools
get_languagesA

Get the list of supported languages in PawnDex.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It only mentions 'Get the list' which implies a read operation, but it does not disclose behavioral traits such as read-only guarantee, authentication requirements, or whether the list is static/dynamic. This lack of transparency is a gap.

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 a single, front-loaded sentence with no redundant information. It conveys the purpose clearly and efficiently, earning a high score for conciseness.

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

Completeness5/5

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

Given the tool has no parameters and an output schema is present (which presumably describes return values), the description is complete. It covers the essential purpose without needing to explain return format or additional details. This is fully adequate for a simple getter.

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

Parameters4/5

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

The input schema has zero parameters, so the baseline is 4. The description does not need to add parameter information, and it correctly avoids doing so. No additional parameter semantics are required.

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 (get), the resource (list of supported languages), and the context (PawnDex). It is distinct from sibling tools like search_packages, get_package, and get_stats, so purpose clarity is high.

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 implies usage: an agent would use this tool when it needs the list of supported languages. However, it does not explicitly state when to use it versus alternatives or mention any exclusions. Since the resource is unique, it is minimally adequate.

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

get_packageA

Get detailed information about a specific Pawn package.

ParametersJSON Schema
NameRequiredDescriptionDefault
repoYesThe repository name (e.g. 'samp-stdlib').
ownerYesThe GitHub username or organization (e.g. 'pawn-lang').

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior3/5

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

With no annotations provided, the description carries the burden. It clearly indicates a read operation ('Get'), but provides no detail on potential side effects, authentication needs, or error behavior. For a simple getter, this is acceptable but not rich.

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 a single sentence with no filler. Every word contributes to conveying the tool's purpose, and it is front-loaded with the action verb.

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?

The tool is simple, has an output schema, and the schema covers all parameters. The description adequately conveys the core function, though slightly more context about the package source or the nature of 'detailed information' could have been provided. Overall, it is sufficiently complete for a getter.

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 input schema already fully documents both parameters (owner and repo) with examples, achieving 100% schema description coverage. The description adds no additional parameter-level meaning, so the baseline score of 3 is appropriate.

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 uses the specific verb 'Get' with a clear resource 'detailed information about a specific Pawn package'. It distinguishes itself from sibling tools like search_packages, which searches, and get_stats/get_languages, which target other aspects.

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 implies usage when a specific package is known, but provides no explicit guidance on when to prefer this tool over siblings. The term 'specific' hints at the contrast with search_packages, but no direct exclusions or alternatives are mentioned.

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

get_statsB

Get global statistics for the PawnDex index.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.4/5.0
Behavior1/5

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

With no annotations provided, the description carries the full burden of disclosing behavioral traits. It only states 'Get global statistics' with no mention of authentication requirements, rate limits, data freshness, or side effects. This is essentially the bare minimum expression of the operation.

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 a single, direct sentence that front-loads the key information. It contains no filler, redundant phrasing, or unnecessary details, making it optimally concise and well-structured.

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 tool's simplicity (no parameters, output schema exists, no nested objects), the description is largely sufficient. While it could mention what statistics are included (e.g., package count, language distribution), the output schema presumably covers return values. The context is complete for practical purposes.

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

Parameters4/5

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

The tool accepts zero parameters, so the description does not need to add semantic meaning. According to the baseline rule for 0 parameters, a score of 4 is appropriate because there are no parameter details to elaborate on.

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 tool's action ('Get'), resource ('global statistics'), and scope ('PawnDex index'). It distinguishes itself from siblings (search_packages, get_package, get_languages) by focusing on overall statistics rather than individual packages or languages.

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?

The description provides no guidance on when to use this tool versus alternatives. It neither states explicit use cases, prerequisites, nor exclusions. The only implied usage is if a user needs global statistics, but there is no concrete context or comparison to sibling tools.

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

search_packagesA

Search for Pawn packages on PawnDex.

ParametersJSON Schema
NameRequiredDescriptionDefault
qNoSearch query (e.g. 'mysql', 'is:official', 'user:openmultiplayer', 'label:plugin').
pageNoPage number for pagination.
sortNoField to sort by: 'stars', 'updated', or 'best'.best
limitNoNumber of items to return (max 100).
directionNoSort direction: 'asc' or 'desc'.desc

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior2/5

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

With no annotations, the description must disclose behavioral traits, but it only states the basic action. It does not mention that it is a read-only search, that results are paginated, that query syntax supports filters like 'is:official', or any other behavioral details. The schema covers some of this, but the description itself is insufficient.

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 a single sentence, front-loaded with the verb and resource. There is zero wasted wording, and it is entirely to the point.

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

Completeness3/5

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

The tool is simple, has an output schema, and the input schema fully documents parameters. However, the description lacks any behavioral context beyond the bare minimum, such as clarifying that it returns a list of packages or noting any limitations. It is minimally viable but not rich.

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 description coverage is 100%, so the baseline is 3. The description adds no parameter-level information beyond what the schema already provides. It does not compensate or add extra context about parameters.

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 it searches for Pawn packages on PawnDex. It uses a specific verb ('search') and resource ('Pawn packages on PawnDex'), which distinctly separates it from sibling tools like get_package or get_stats.

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 usage context is implied (when you need to find packages), but there is no explicit guidance on when to use this tool versus alternatives such as get_package for known packages. No exclusions or alternative tool mentions 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. Dates show when Glama detected each change.

  1. 4 tool updatesv0.1.0
    • First observedget_languages
    • First observedget_package
    • First observedget_stats
    • First observedsearch_packages

TDQS

A4/5.0
Disambiguation5/5

Each tool serves a distinct purpose: searching packages, retrieving package details, fetching global stats, and listing supported languages. There is no overlap or ambiguity between them.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern (search_packages, get_package, get_stats, get_languages), making the API predictable and easy to navigate.

Tool Count5/5

With 4 tools, the server is well-scoped for its purpose as a package index. Each tool is essential and the count is neither too sparse nor bloated.

Completeness5/5

The domain is a read-only package index, and the tools cover the core workflows: finding packages (search), examining details (get_package), and accessing supporting metadata (stats, languages). No obvious gaps exist.

Maintenance

ActivityStale
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    A
    maintenance
    An MCP server that exposes authoritative, read-only Conda ecosystem metadata for AI agents, enabling package search, dependency resolution, and other packaging queries without side effects.
    6
    BSD 3-Clause
  • A
    license
    Not graded
    quality
    C
    maintenance
    MCP server for comprehensive PyPI package intelligence, providing tools for dependency analysis, security scanning, health scoring, license compliance, and trend tracking.
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    MCP server providing dependency and package management tools for AI agents. Analyze licenses, find outdated packages, visualize dependency trees, estimate bundle sizes, and audit security vulnerabilities.
    5
    49
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/sittiev/pawndex_mcp_server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server