uniswap-pools-mcp
Server Quality Checklist
Latest release: v1.0.0
- Disambiguation3/5
There is significant overlap between get_token_pools and the version-specific tools (get_token_pools_v2/v3/v4), as they all retrieve pools for a token with similar outputs. However, get_pool_data is clearly distinct for querying a specific pool by ID. The descriptions help clarify that get_token_pools aggregates across versions while others are version-specific, but agents might still be confused about when to use which.
Naming Consistency4/5The naming follows a consistent snake_case verb_noun pattern throughout (e.g., get_pool_data, get_token_pools). The only deviation is the addition of version suffixes (v2, v3, v4) for some tools, which is logical but slightly breaks the pure verb_noun convention. Overall, the naming is predictable and readable.
Tool Count4/5With 5 tools, the count is well-scoped for querying Uniswap pools, covering specific pool data and token-based queries across versions. It's slightly lean but reasonable, as each tool serves a purpose. A few more tools for broader operations (e.g., list_all_pools) could enhance it, but it's not a significant gap.
Completeness3/5The toolset covers querying pools by ID and by token across Uniswap versions, which is a focused domain. However, there are notable gaps: no tools for creating, updating, or deleting pools (if applicable), and no broader operations like listing all pools or searching by other criteria. This limits agents to read-only queries, which may be sufficient but feels incomplete for full pool management.
Average 4.2/5 across 5 of 5 tools scored.
See the Tool Scores section below for per-tool breakdowns.
- No community issues in the last 6 months
- 0 commits in the last 12 weeks
- No stable releases found
- No critical vulnerability alerts
- No high-severity vulnerability alerts
- No code scanning findings
- CI status not available
This repository is licensed under MIT License.
This repository includes a README.md file.
No tool usage detected in the last 30 days. Usage tracking helps demonstrate server value.
Tip: use the "Try in Browser" feature on the server page to seed initial usage.
Add a glama.json file to provide metadata about your server.
If you are the author, simply .
If the server belongs to an organization, first add
glama.jsonto the root of your repository:{ "$schema": "https://glama.ai/mcp/schemas/server.json", "maintainers": [ "your-github-username" ] }Then . Browse examples.
Add related servers to improve discoverability.
How to sync the server with GitHub?
Servers are automatically synced at least once per day, but you can also sync manually at any time to instantly update the server profile.
To manually sync the server, click the "Sync Server" button in the MCP server admin interface.
How is the quality score calculated?
The overall quality score combines two components: Tool Definition Quality (70%) and Server Coherence (30%).
Tool Definition Quality measures how well each tool describes itself to AI agents. Every tool is scored 1–5 across six dimensions: Purpose Clarity (25%), Usage Guidelines (20%), Behavioral Transparency (20%), Parameter Semantics (15%), Conciseness & Structure (10%), and Contextual Completeness (10%). The server-level definition quality score is calculated as 60% mean TDQS + 40% minimum TDQS, so a single poorly described tool pulls the score down.
Server Coherence evaluates how well the tools work together as a set, scoring four dimensions equally: Disambiguation (can agents tell tools apart?), Naming Consistency, Tool Count Appropriateness, and Completeness (are there gaps in the tool surface?).
Tiers are derived from the overall score: A (≥3.5), B (≥3.0), C (≥2.0), D (≥1.0), F (<1.0). B and above is considered passing.
Tool Scores
- Behavior3/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 discloses the output format (markdown table) and columns, which is useful behavioral context. However, it does not mention potential limitations like rate limits, error handling, or data freshness, leaving gaps for a query tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with a clear purpose statement, parameter details, and return information in three concise sections. Every sentence adds value, and it is front-loaded with the main action, making it efficient and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (querying pools with one parameter) and no annotations or output schema, the description is mostly complete: it covers purpose, parameters, and return format. However, it lacks details on behavioral aspects like error cases or performance, slightly reducing completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters5/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds significant meaning beyond the input schema, which has 0% description coverage. It explains that token_address is an 'Ethereum address' with an example, and clarifies the purpose of the ctx parameter for 'logging and error handling', fully compensating for the schema's lack of documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('Query all Uniswap V3 pools for a specific token') and the output format ('return as a formatted markdown table'), distinguishing it from sibling tools like get_token_pools_v2 and get_token_pools_v4 by specifying the V3 version. The verb 'query' and resource 'Uniswap V3 pools' are precise.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for querying Uniswap V3 pools, but does not explicitly state when to use this tool versus alternatives like get_token_pools_v2 or get_token_pools_v4. It provides context (V3 pools) but lacks explicit guidance on exclusions or comparisons with siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses the tool's behavior by describing the query action and output format (markdown table with specific columns). However, it lacks details on potential errors, rate limits, authentication needs, or whether this is a read-only operation. The mention of 'ctx' parameter for 'logging and error handling' hints at some behavioral aspects but is vague.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured and front-loaded with the core purpose in the first sentence. Each subsequent section (Parameters, Returns) adds necessary details without redundancy. The text is appropriately sized, with no wasted sentences, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (querying blockchain data with one parameter) and no annotations or output schema, the description is mostly complete. It covers purpose, parameters, and return format in detail. However, it could improve by addressing behavioral aspects like error handling or performance, which are relevant for a tool interacting with external APIs.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters5/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds significant meaning beyond the input schema, which has 0% coverage. It fully documents the 'token_address' parameter with its purpose, data type, and an example, and explains the 'ctx' parameter (not in the schema) for context handling. This compensates for the low schema coverage and provides clear parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('Query all Uniswap V4 pools for a specific token') and the output format ('return as a formatted markdown table'). It distinguishes from sibling tools by specifying V4 version, unlike generic 'get_token_pools' or version-specific siblings like 'get_token_pools_v2' and 'get_token_pools_v3'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context by specifying 'Uniswap V4 pools' and 'for a specific token', which suggests when to use this tool (for V4 pools with a token address). However, it does not explicitly state when to choose this over alternatives like 'get_token_pools_v2' or 'get_token_pools_v3', nor does it mention any exclusions or prerequisites beyond the token address parameter.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses the tool's behavior by specifying it returns a formatted markdown table with sorted results, which adds useful context beyond basic querying. However, it lacks details on error handling, rate limits, or data freshness, which are important for a tool interacting with blockchain data.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized and front-loaded, starting with the core purpose, followed by parameter details and return format in a structured manner. Every sentence adds value without redundancy, making it efficient and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (querying multiple blockchain versions) and lack of annotations or output schema, the description is fairly complete. It explains the purpose, parameters, and return format in detail. However, it could improve by mentioning potential limitations like network dependencies or default behaviors, but it covers the essentials well.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds significant meaning beyond the input schema, which has 0% coverage. It explains the 'token_address' parameter with an example and clarifies the 'ctx' parameter's purpose for logging and error handling, compensating well for the schema's lack of descriptions. This provides clear semantics for both parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('Query all Uniswap V2, V3, and V4 pools/pairs for a specific token') and the resource ('token'), distinguishing it from siblings by specifying it covers all versions (V2-V4) rather than individual versions like the sibling tools. The verb 'query' is precise and the scope is well-defined.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context by specifying it's for querying pools for a token across multiple Uniswap versions, but it does not explicitly state when to use this tool versus the sibling tools (e.g., get_token_pools_v2, v3, v4) or provide alternatives. However, the clear scope (all versions) offers some implicit guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/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 behavioral disclosure. It describes the action (query), output format (markdown text), and specific data fields returned, but doesn't mention error handling, rate limits, authentication requirements, or whether this is a read-only operation. It provides basic behavioral context but lacks important operational details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is perfectly structured and concise. The first sentence states the core purpose, followed by clear parameter documentation and return value description. Every sentence adds essential information with zero waste, making it easy to scan and understand.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 2 parameters, no annotations, and no output schema, the description provides good completeness. It explains what the tool does, documents parameters thoroughly, and describes the return format and content. However, it doesn't address potential errors, authentication, or rate limiting, which would be helpful given the lack of annotations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters5/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage and 2 parameters, the description provides excellent parameter semantics. It clearly explains both parameters: 'version' with its allowed values ('v2', 'v3', or 'v4') and 'pool_id' with an example Ethereum address. The description fully compensates for the schema's lack of documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('Query a specific Uniswap pool/pair'), the resource ('by version and ID'), and the output format ('return as markdown text'). It distinguishes from sibling tools like 'get_token_pools' which appear to list pools for tokens rather than query specific pools by ID and version.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use this tool ('Query a specific Uniswap pool/pair by version and ID'), but doesn't explicitly state when not to use it or name alternatives. It implies usage for retrieving detailed pool data rather than listing pools, but lacks explicit exclusions or comparisons to sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/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 discloses that the tool queries data and returns a formatted markdown table, which indicates a read-only operation without mutation. However, it lacks details on behavioral traits such as error handling, rate limits, or authentication needs, leaving gaps in transparency for a tool with no annotation support.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized and front-loaded, starting with the core purpose, followed by clear parameter and return value sections. Every sentence adds value without redundancy, making it efficient and well-structured for quick understanding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (querying Uniswap pairs) and no annotations or output schema, the description is mostly complete: it explains the purpose, parameters, and return format. However, it lacks details on potential errors, data freshness, or limitations, which could be useful for full contextual understanding in a financial data context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters5/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It adds significant meaning beyond the input schema by explaining the token_address parameter with an example (e.g., Ethereum address format) and clarifying the ctx parameter for logging and error handling, even though ctx is not in the schema. This fully compensates for the lack of schema documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with specific verbs ('Query all Uniswap V2 pairs for a specific token') and resource ('Uniswap V2 pairs'), distinguishing it from sibling tools like get_token_pools_v3 and get_token_pools_v4 by specifying the V2 version. It also mentions the output format ('formatted markdown table'), making the purpose explicit and differentiated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context by specifying 'for a specific token' and the V2 version, which helps differentiate it from siblings like get_pool_data or other versions. However, it does not explicitly state when to use this tool versus alternatives (e.g., no direct comparison or exclusion criteria), so it provides clear context but lacks explicit guidance on alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
GitHub Badge
Glama performs regular codebase and documentation scans to:
- Confirm that the MCP server is working as expected.
- Confirm that there are no obvious security issues.
- Evaluate tool definition quality.
Our badge communicates server capabilities, safety, and installation instructions.
Card Badge
Copy to your README.md:
Score Badge
Copy to your README.md:
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/kukapay/uniswap-pools-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server