Noun MCP Server
The Noun MCP Server enables AI assistants to search, browse, and download professional icons from The Noun Project through natural language commands in tools like Cursor AI and Claude Desktop.
Core Capabilities:
Search Icons - Find icons by keywords with filters for style (solid/line), line weight (1-60), thumbnail size, public domain status, and SVG inclusion
Get Icon Details - Retrieve comprehensive information including metadata, creator details, tags, collections, license information, and download URLs
Download Icons - Download in SVG or PNG format with custom colors (hex values) and sizes (20-1200px for PNG), with optional save-to-file functionality
Search & Browse Collections - Discover curated collections by keyword and view all icons within specific collections
Autocomplete Suggestions - Get smart search term suggestions to refine queries
Usage Monitoring - Check API limits, remaining calls, percentage used, and days until reset with alerts at 50%, 80%, and 95% thresholds
Key Features:
Supports FREE tier (5,000 calls/month, public domain icons only) and PAID tier (unlimited access)
Automatic cost optimization for FREE tier with smart defaults
Built-in rate limiting (100 requests/minute)
Flexible installation via npx (no install required), global install, or local development
OAuth 1.0a authentication with pagination support
Provides tools for searching, browsing, and downloading professional icons and collections from The Noun Project, including capabilities for filtering results and monitoring API usage limits.
Enables retrieving and downloading icons in SVG format with customizable colors and sizes for use in development projects.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Noun MCP Serverfind a minimalist rocket icon in SVG format"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.

Noun MCP Server
⚠️ Unofficial Project · This is an independent third-party tool using The Noun Project API. Not affiliated with or endorsed by The Noun Project.
MCP (Model Context Protocol) server for searching, downloading, and using icons from The Noun Project in Cursor AI, Claude Desktop, and other MCP-supported AI tools.
TypeScript · OAuth 1.0a · tier-aware API cost optimization · production-ready MCP tooling
🚀 Quick Start
Cursor AI
Add to MCP settings:
{
"mcpServers": {
"noun-project": {
"command": "npx",
"args": ["-y", "@alisaitteke/noun-mcp"],
"env": {
"NOUN_CONSUMER_KEY": "your_key",
"NOUN_CONSUMER_SECRET": "your_secret",
"NOUN_API_TIER": "FREE"
}
}
}
}Claude Desktop
Add to config:
{
"mcpServers": {
"noun-project": {
"command": "npx",
"args": ["-y", "@alisaitteke/noun-mcp"],
"env": {
"NOUN_CONSUMER_KEY": "your_key",
"NOUN_CONSUMER_SECRET": "your_secret",
"NOUN_API_TIER": "FREE"
}
}
}
}Claude Code
Run in terminal:
claude mcp add \
--transport stdio \
noun-project \
--env NOUN_CONSUMER_KEY=your_key \
--env NOUN_CONSUMER_SECRET=your_secret \
--env NOUN_API_TIER=FREE \
-- npx -y @alisaitteke/noun-mcpWhat is this? A bridge that lets AI assistants search and download professional icons for your projects. No manual browsing needed - just ask your AI!
Features
Icon Search: Find icons with filters for style, line weight, and licensing
Icon Download: Get SVG or PNG files with custom colors and sizes
Collection Browser: Explore curated icon collections
Smart Suggestions: Autocomplete helps find the right search terms
Usage Tracking: Monitor your API usage and limits
FREE Tier Mode: Smart optimizations for 5K monthly API calls
PAID Tier Mode: Unlimited access with no restrictions
Related MCP server: Noun Project MCP Server
About the Builder
Built by Ali Sait Teke — Full-Stack / AI-Era Software Architect based in London.
This project is part of an open-source MCP tooling ecosystem (Docker, Temporal, Photoshop, npm, and more) that brings real-world APIs into AI-assisted development workflows. Implemented in TypeScript/Node.js; broader portfolio spans Python, Go, React, Next.js, and Vue.
GitHub: @alisaitteke
LinkedIn: Ali Sait Teke
Portfolio: alisait.com
Architecture deep-dive: docs/ARCHITECTURE.md · Sharing guide: docs/SOCIAL.md
Requirements
Node.js 18 or higher (Download)
The Noun Project API Keys (free account works!)
Don't have API keys? Get them here →
Quick Start
Step 1: Get Your API Keys
Sign in or create a free account
Create a new app (or select an existing one)
Copy your Consumer Key and Consumer Secret
Step 2: Installation
Option A: npx (Easiest - No Install Required)
# Run directly without installation
npx @alisaitteke/noun-mcpOption B: Global Install
npm install -g @alisaitteke/noun-mcpOption C: Local Development
git clone https://github.com/alisaitteke/noun-mcp.git
cd noun-mcp
npm install
npm run build
npm linkStep 3: Configure Environment
Create a .env file in the project directory:
cp .env.example .envEdit .env with your credentials:
# Your API credentials from The Noun Project
NOUN_CONSUMER_KEY=your_consumer_key_here
NOUN_CONSUMER_SECRET=your_consumer_secret_here
# Choose your tier: FREE (5K calls/month) or PAID (unlimited)
NOUN_API_TIER=FREEFREE vs PAID Tier
FREE Tier (5,000 API calls/month)
Perfect for personal projects and testing
Automatic cost optimizations
Smaller page sizes (max 10 results per search)
Optimized thumbnails (42px by default)
SVG URLs excluded by default (save bandwidth)
Smart usage alerts at 50%, 80%, 95%
PAID Tier (Unlimited)
No monthly limits
Larger page sizes (up to 100 results)
High-quality thumbnails (84px by default)
SVG URLs included automatically
No restrictions
Switch anytime: Just update NOUN_API_TIER in your .env file!
Step 4: Configure Cursor AI
Open Cursor settings: Settings → Features → MCP
Add this configuration:
Option A: Using npx (Recommended)
{
"mcpServers": {
"noun-project": {
"command": "npx",
"args": ["@alisaitteke/noun-mcp"],
"env": {
"NOUN_CONSUMER_KEY": "your_key_here",
"NOUN_CONSUMER_SECRET": "your_secret_here",
"NOUN_API_TIER": "FREE"
}
}
}
}Option B: Using global install
{
"mcpServers": {
"noun-project": {
"command": "noun-mcp",
"env": {
"NOUN_CONSUMER_KEY": "your_key_here",
"NOUN_CONSUMER_SECRET": "your_secret_here",
"NOUN_API_TIER": "FREE"
}
}
}
}Option C: Using local build
{
"mcpServers": {
"noun-project": {
"command": "node",
"args": ["/path/to/noun-mcp/dist/index.js"],
"env": {
"NOUN_CONSUMER_KEY": "your_key_here",
"NOUN_CONSUMER_SECRET": "your_secret_here",
"NOUN_API_TIER": "FREE"
}
}
}
}Step 5: Configure Claude Desktop
Edit: ~/Library/Application Support/Claude/claude_desktop_config.json
Using npx (Recommended)
{
"mcpServers": {
"noun-project": {
"command": "npx",
"args": ["@alisaitteke/noun-mcp"],
"env": {
"NOUN_CONSUMER_KEY": "your_key_here",
"NOUN_CONSUMER_SECRET": "your_secret_here",
"NOUN_API_TIER": "FREE"
}
}
}
}Usage Examples
Once configured, just talk to your AI naturally:
Search for Icons
"Find me some coffee cup icons"
"Search for solid style house icons"
"Show me line icons with weight 18-20 for 'bicycle'"Download Icons
"Download icon 12345 in red color"
"Get icon 67890 as PNG, 200x200 pixels, save to ./icons/house.png"
"Download this icon as SVG with hex color FF5733"Browse Collections
"Search for weather icon collections"
"Show me collection 123 details"Get Suggestions
"Give me autocomplete suggestions for 'spo'"Check Usage
"How many API calls have I used this month?"
"Check my API usage limits"Available Tools
The AI can use these tools to help you:
search_icons
Search The Noun Project icon database.
What you can filter:
Style:
solid,line, or bothLine weight:
1-60or range like"18-20"Public domain: Show only free-to-use icons
Thumbnail size:
42,84, or200pixelsInclude SVG: Get SVG URLs in results
Limit: Max results per page
Example:
"Search for 'coffee' icons in solid style, public domain only"get_icon
Get detailed information about a specific icon.
Returns:
Icon name and ID
Creator information
Tags and collections
License details
Download URLs
Example:
"Show me details for icon 12345"download_icon
Download an icon with custom options.
Options:
Format: SVG or PNG
Color: Any hex color (e.g., "FF0000" for red)
Size: 20-1200 pixels (PNG only)
Save to file: Optional file path
Note: FREE tier can only download public domain icons.
Example:
"Download icon 12345 as PNG, 200x200, red color, save to ./icons/coffee.png"search_collections
Find icon collections by keyword.
Example:
"Search for 'travel' collections"get_collection
View a specific collection with all its icons.
Example:
"Show me collection 456"icon_autocomplete
Get search term suggestions (max 10).
Example:
"What terms start with 'comp'?"check_usage
Check your API usage and limits.
Shows:
Monthly limit and usage
Remaining calls
Percentage used
Days until reset
Optimization tips (FREE tier)
FREE Tier Best Practices
Maximize your 5,000 monthly calls:
1. Be Specific
Bad: "icon" → Too broad, many pages needed
Good: "coffee cup" → Specific, better results2. Use Autocomplete First
Step 1: "Suggestions for 'cof'" → ["coffee", "coffee cup"]
Step 2: "Search for 'coffee cup'" → Exact results3. Avoid Pagination
Bad: Browsing 5 pages = 5 API calls
Good: Refine search to get results on first page4. Download Once, Reuse
Download icon → Save to project → Use everywhere
(Don't re-download the same icon)5. Filter for Public Domain
FREE tier can only download public domain icons
Filter searches with limit_to_public_domain=16. Cache Results
The server automatically caches usage data for 5 minutes. You should also save:
Downloaded icons
Icon IDs you've explored
Collection information
Cost Optimization
The server automatically optimizes API usage in FREE tier mode:
Feature | FREE Tier | PAID Tier |
Results per page | 10 max | 100 max |
Default thumbnail | 42px | 84px |
SVG URLs | Excluded | Included |
Pagination warnings | Yes | No |
Usage alerts | 50%, 80%, 95% | None |
Want full details? See COST_OPTIMIZATION.md
Development
Run in Development Mode
npm install
npm run devBuild for Production
npm run buildRun Built Version
npm startProject Structure
noun-mcp/
├── src/
│ ├── index.ts # MCP server entry point
│ ├── api/
│ │ ├── auth.ts # OAuth 1.0a authentication
│ │ └── client.ts # API client with rate limiting
│ ├── tools/
│ │ ├── search.ts # Icon search functionality
│ │ ├── download.ts # Icon download & details
│ │ ├── collections.ts # Collections & autocomplete
│ │ └── usage.ts # Usage monitoring
│ ├── types/
│ │ └── schemas.ts # Zod schemas & TypeScript types
│ └── utils/
│ └── costOptimizer.ts # Cost optimization logic
├── docs/
│ ├── ARCHITECTURE.md # System design & technical overview
│ └── SOCIAL.md # LinkedIn / GitHub sharing guide
├── package.json
├── tsconfig.json
└── README.mdFor system design, data flow, and design decisions, see docs/ARCHITECTURE.md.
Troubleshooting
"Missing required environment variables"
Problem: API keys not found.
Solution:
Check
.envfile existsVerify
NOUN_CONSUMER_KEYandNOUN_CONSUMER_SECRETare setCheck for typos in variable names
"Authentication failed"
Problem: Invalid API credentials.
Solution:
Verify credentials at developers page
Make sure you copied the entire key/secret
Check for extra spaces or quotes
"Rate limit exceeded"
Problem: Too many requests too fast.
Solution:
Wait a moment (limit is 100 requests/minute)
The server automatically handles rate limiting
If persistent, check your usage with
check_usagetool
SVG URLs Not Working
Problem: SVG URLs expire after 1 hour.
Solution:
Download fresh URLs when needed
Use
download_iconto get base64-encoded iconsSave icons locally instead of relying on URLs
"Free API access is limited to public domain icons"
Problem: Trying to download non-public-domain icon with FREE account.
Solution:
Filter searches:
limit_to_public_domain=1Or upgrade to PAID tier at pricing page
Server Not Appearing in Cursor/Claude
Problem: MCP server not detected.
Solution:
Restart Cursor AI or Claude Desktop
Check JSON config syntax (no trailing commas!)
Verify file paths are absolute
Check server logs for errors
API Limits
Tier | Monthly Limit | Rate Limit | Download Access |
FREE | 5,000 calls | 100/min | Public domain only |
PAID | Unlimited | 100/min | All icons |
Want more? Check The Noun Project Pricing
Contributing
Contributions are welcome!
Fork the repository
Create a feature branch:
git checkout -b feature/amazing-featureCommit changes:
git commit -m 'Add amazing feature'Push to branch:
git push origin feature/amazing-featureOpen a Pull Request
License
MIT License - see LICENSE file for details.
Acknowledgments
The Noun Project - For the amazing icon collection
Model Context Protocol - For the MCP specification
Anthropic - For Claude and MCP development
Author
Ali Sait Teke — Full-Stack / AI-Era Software Architect
GitHub: @alisaitteke
LinkedIn: Ali Sait Teke
Portfolio: alisait.com
NPM: @alisaitteke
More MCP projects: alisait.com/projects
Support
Issues: GitHub Issues
Documentation: The Noun Project API Docs
Pricing: The Noun Project Plans
Links
Note: This is a community-built MCP server and is not an official product of The Noun Project.
Made with for the AI and developer community.
Available Tools
7 toolscheck_usageB
Check API usage limits and current usage.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It states what the tool does but doesn't describe how it behaves: no information about response format, whether it shows real-time vs cached data, rate limits of this tool itself, authentication requirements, or error conditions. 'Check' implies a read operation, but this isn't explicitly confirmed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is perfectly concise at 7 words in a single sentence that directly states the tool's purpose. Every word earns its place with no redundancy or unnecessary elaboration. It's front-loaded with the core functionality.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no annotations, no output schema, and zero parameters, the description is incomplete. While concise, it lacks crucial context about what information is returned (limits vs current usage, time periods, quota details), how frequently it should be called, or what the response structure looks like. The agent would need to invoke the tool blindly to understand its behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters with 100% schema description coverage, so the schema already fully documents the parameter situation. The description appropriately doesn't discuss parameters since none exist. It earns a baseline 4 for not creating confusion about parameters that don't exist.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does 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 ('check') and resources ('API usage limits and current usage'). It distinguishes from siblings like 'download_icon' or 'search_collections' by focusing on system monitoring rather than icon/collection operations. However, it doesn't explicitly differentiate from potential non-existent siblings in the usage monitoring domain.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. There's no mention of prerequisites, timing considerations, or comparison with other tools for monitoring API usage. The agent must infer usage context solely from the purpose statement.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
download_iconA
Download an icon with custom color and size options. Supports SVG or PNG formats. Note: Free API access is limited to public domain icons only.
| Name | Required | Description | Default |
|---|---|---|---|
| icon_id | Yes | ID of the icon to download | |
| color | No | Hexadecimal color value (e.g., "FF0000" for red) | |
| filetype | No | File format (svg or png) | |
| size | No | Size in pixels for PNG (min: 20, max: 1200). Not applicable for SVG. | |
| save_to_file | No | Optional: File path to save the icon |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden. It discloses format support (SVG/PNG) and API limitations (public domain only for free access), which are useful behavioral traits. However, it lacks details on permissions, rate limits, or error handling, leaving gaps for a mutation-like download operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose, followed by key features and a critical note, all in three concise sentences with zero wasted words. Each sentence adds distinct value, making it highly efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 5 parameters, no annotations, and no output schema, the description is moderately complete. It covers purpose, formats, and API limitations, but lacks details on return values, error cases, or authentication needs, which are important given the download operation's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents all 5 parameters. The description adds minimal value beyond the schema by mentioning 'custom color and size options' and format support, but doesn't provide additional syntax or constraints. Baseline 3 is appropriate as the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'download' and resource 'icon' with custom options, making the purpose evident. It distinguishes from siblings like 'get_icon' by specifying download functionality. However, it doesn't explicitly contrast with all siblings, keeping it at 4 rather than 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage through the mention of 'custom color and size options' and format support, but provides no explicit guidance on when to use this tool versus alternatives like 'get_icon' or 'search_icons'. The note about free API limitations offers some context but not sibling differentiation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_collectionC
Get details and icons of a specific collection.
| Name | Required | Description | Default |
|---|---|---|---|
| collection_id | Yes | Unique collection ID | |
| thumbnail_size | No | Thumbnail size in pixels | |
| include_svg | No | Include SVG URLs | |
| limit | No | Icon limit in collection | |
| next_page | No | Token for next page | |
| prev_page | No | Token for previous page |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden for behavioral disclosure. It mentions retrieving 'details and icons' but lacks critical information such as whether this is a read-only operation, potential rate limits, authentication requirements, or how pagination works with 'next_page' and 'prev_page' parameters.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's purpose without unnecessary words. It is front-loaded and appropriately sized for the complexity, with every part contributing to clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 6 parameters, no annotations, and no output schema, the description is incomplete. It doesn't explain the return format, pagination behavior, or error handling, leaving significant gaps in understanding how to effectively use the tool beyond basic parameter input.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents all parameters. The description adds no additional meaning beyond implying retrieval of 'details and icons', which loosely relates to parameters like 'thumbnail_size' and 'include_svg', but doesn't enhance understanding of their semantics beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get' and the resource 'details and icons of a specific collection', making the purpose understandable. However, it doesn't explicitly differentiate from sibling tools like 'search_collections' or 'get_icon', which might retrieve similar data but with different scopes or filters.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 doesn't mention prerequisites, exclusions, or compare to siblings like 'search_collections' for broader queries or 'get_icon' for individual icons, leaving usage context ambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_iconB
Get detailed information about a specific icon (metadata, creator, tags, download URLs).
| Name | Required | Description | Default |
|---|---|---|---|
| icon_id | Yes | Unique icon ID | |
| thumbnail_size | No | Thumbnail size in pixels |
TDQS
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 states the tool retrieves information, implying a read-only operation, but doesn't address potential rate limits, authentication needs, error handling, or response format. This leaves significant gaps in understanding how the tool behaves beyond its basic purpose.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core purpose ('Get detailed information about a specific icon') and lists key details (metadata, creator, tags, download URLs) without unnecessary words. Every element earns its place, making it highly concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (2 parameters, no output schema, no annotations), the description is adequate but incomplete. It covers the purpose and key output aspects, but lacks behavioral details like rate limits or error handling, and doesn't explain return values since no output schema exists. This meets minimum viability but has clear gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, with clear documentation for 'icon_id' and 'thumbnail_size' (including enum values). The description adds minimal value beyond the schema, mentioning 'detailed information' but not elaborating on how parameters affect the output. Baseline score of 3 is appropriate as the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get' and the resource 'detailed information about a specific icon', specifying metadata, creator, tags, and download URLs. It distinguishes from siblings like 'download_icon' (which likely downloads files) and 'search_icons' (which searches multiple icons), but doesn't explicitly name alternatives or differentiate beyond the scope of a single icon.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for retrieving metadata of a specific icon, suggesting it's for detailed lookup rather than searching or downloading. However, it doesn't provide explicit guidance on when to use this tool versus alternatives like 'search_icons' for broader queries or 'download_icon' for file retrieval, leaving usage context somewhat inferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
icon_autocompleteC
Get autocomplete suggestions for icon search.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search term for autocomplete | |
| limit | No | Number of suggestions (maximum 10) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states what the tool does but lacks details on traits like rate limits, authentication needs, response format, or error handling. For a tool with zero annotation coverage, this is a significant gap, as the agent has no insight into operational constraints or expected behavior beyond the basic function.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core purpose ('Get autocomplete suggestions') without any wasted words. It's appropriately sized for a simple tool, making it easy for an agent to parse quickly. Every part of the sentence contributes directly to understanding the tool's function.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of annotations and output schema, the description is incomplete for effective tool use. It covers the basic purpose but omits critical context like response format, error cases, or performance hints. For a tool with 2 parameters and no structured behavioral data, the description should provide more guidance to compensate, but it falls short.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, with clear descriptions for both parameters ('query' and 'limit'), so the schema does the heavy lifting. The description adds no additional meaning beyond implying a search context, which is already covered by the schema. This meets the baseline score of 3 for high schema coverage without extra param info in the description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with a specific verb ('Get') and resource ('autocomplete suggestions for icon search'), making it immediately understandable. It distinguishes from siblings like 'search_icons' by focusing on autocomplete suggestions rather than full search results. However, it doesn't explicitly contrast with 'search_collections' or other siblings, keeping it from a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 like 'search_icons' or 'get_icon'. It mentions 'autocomplete suggestions' but doesn't specify use cases (e.g., for real-time search assistance) or exclusions. Without any contextual cues, the agent must infer usage from the name and description alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_collectionsC
Search for collections on The Noun Project.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Collection search term | |
| limit | No | Maximum number of results | |
| next_page | No | Token for next page | |
| prev_page | No | Token for previous page |
TDQS
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 states the tool's purpose but doesn't describe key behaviors like pagination (implied by 'next_page' and 'prev_page' parameters but not explained), rate limits, authentication needs, or what the search returns (e.g., list of collections with metadata). This is inadequate for a search tool with multiple parameters.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence that efficiently conveys the core purpose without unnecessary words. It's front-loaded and wastes no space, making it easy for an agent to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of a search tool with pagination parameters and no output schema, the description is insufficient. It doesn't explain the return format (e.g., what data fields are included), how results are ordered, or error handling. With no annotations and missing output details, it leaves significant gaps for the agent to infer behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters ('query', 'limit', 'next_page', 'prev_page') with descriptions. The description adds no additional meaning beyond what's in the schema, such as explaining how pagination tokens work or default limits. This meets the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Search for collections') and the target resource ('collections on The Noun Project'), which is specific and unambiguous. However, it doesn't explicitly differentiate from sibling tools like 'search_icons' or 'get_collection', which would require mentioning what makes this tool distinct (e.g., searching vs. retrieving a specific collection).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 doesn't mention when to choose 'search_collections' over 'get_collection' (for specific collections) or 'search_icons' (for icons), nor does it specify prerequisites or exclusions. This leaves the agent without context for tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_iconsC
Search for icons on The Noun Project. You can filter by style, line weight, public domain, and more.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search term (e.g., "dog", "house", "bicycle") | |
| styles | No | Icon style: solid, line, or both | |
| line_weight | No | Line weight for line icons (1-60) or range (e.g., "18-20") | |
| limit_to_public_domain | No | Show only public domain icons (1=yes, 0=no) | |
| thumbnail_size | No | Thumbnail size in pixels | |
| include_svg | No | Include SVG URLs in response (1=yes, 0=no) | |
| limit | No | Maximum number of results | |
| next_page | No | Token for next page | |
| prev_page | No | Token for previous page |
TDQS
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 mentions filtering options but doesn't describe critical behaviors like pagination (implied by 'next_page'/'prev_page' parameters), rate limits, authentication needs, or what the response format looks like. This is inadequate for a search tool with 9 parameters.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core purpose and briefly mentions key capabilities. Every word earns its place with zero redundancy or wasted space.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (9 parameters, no annotations, no output schema), the description is incomplete. It doesn't explain the search results format, pagination behavior, error conditions, or usage constraints. For a search tool with rich filtering options, this leaves significant gaps for the agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters thoroughly. The description adds marginal value by listing some filterable attributes ('style, line weight, public domain, and more') but doesn't provide additional semantics beyond what's in the schema. This meets the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Search for icons on The Noun Project.' It specifies the verb ('search') and resource ('icons'), and mentions the platform ('The Noun Project'). However, it doesn't explicitly differentiate from sibling tools like 'search_collections' or 'icon_autocomplete', which prevents a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 like 'search_collections' or 'icon_autocomplete'. It mentions filtering capabilities but doesn't specify scenarios or prerequisites for usage, leaving the agent without context for tool selection.
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.
7 tool updates
v1.0.0- First observed
check_usage - First observed
download_icon - First observed
get_collection - First observed
get_icon - First observed
icon_autocomplete - First observed
search_collections - First observed
search_icons
TDQS
Scored across 7 tools
Every tool has a clearly distinct purpose with no ambiguity. For example, 'get_icon' retrieves metadata for a specific icon, while 'download_icon' handles downloading it, and 'search_icons' searches across icons. The descriptions clearly differentiate between operations on icons versus collections, and between retrieval, search, and utility functions.
All tool names follow a consistent verb_noun pattern using snake_case, such as 'check_usage', 'download_icon', and 'search_collections'. The naming is predictable and readable throughout, with no deviations in style or convention, making it easy for agents to understand and use the tools.
With 7 tools, the count is well-scoped for a Noun Project API server. Each tool earns its place by covering distinct aspects like usage checking, icon retrieval, downloading, searching, and collection management. This is neither too sparse nor bloated, fitting typical MCP server ranges for focused domains.
The tool surface is nearly complete for the Noun Project domain, covering key operations like searching, retrieving, and downloading icons, as well as managing collections. A minor gap exists in update or delete operations (e.g., no tools for modifying collections or icons), but agents can work around this as the core workflows are well-supported.
Maintenance
Related MCP Connectors
Icons for agentic development: search & fetch 366,000+ open-source icons as SVG/PNG. No API key.
Search open SVG icon packs and fetch exact SVG markup from coding agents through MCP.
Multilingual semantic SVG icon search with previews for AI coding agents. 20,000+ icons.
Search & install 6,500+ AI agent skills from skills-hub.ai inside any MCP tool.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceA search service based on multiple image APIs and icon generation capabilities, specifically designed for integration with Cursor MCP service. Supports image search, download, and AI-generated icons.16MIT
- AlicenseAqualityDmaintenanceEnables searching and retrieving icons from The Noun Project API with advanced filters for style, color, and size customization.7154MIT
- AlicenseAqualityBmaintenanceDescription: Supericons MCP lets AI coding agents search, recommend, and retrieve SVG icons from a semantic registry of 20,000+ icons.141MIT

Svg/icons MCPofficial
AlicenseNot gradedqualityCmaintenanceEnables AI coding tools to search, inspect, recommend, and export SVG icons from svgicons.com for use in design systems, frontend projects, and AI-assisted workflows.MIT