context-awesome
context-awesome : エージェントのためのAwesomeリファレンス 
キュレーションされたすべてのAwesomeリストとその項目へのアクセスを提供するModel Context Protocol (MCP) サーバーです。GitHub上の8,500以上のAwesomeリストのセクションや、100万件以上(増加中)のAwesome項目から、エージェントに最適なリソースを提供できます。
Awesomeリストとは? Awesomeリストは、機械学習フレームワークからデザインツールまで、あらゆるトピックに関する最高のツール、ライブラリ、リソースをコミュニティがキュレーションしたコレクションです。このMCPサーバーを追加することで、AIエージェントはランダムなウェブ検索に頼ることなく、これらの高品質で精査されたリソースに即座にアクセスできるようになります。
以下のような用途に最適です:
ナレッジワーカーエージェントが、業務に関連する最適なリファレンスを取得する
学習リソースの最高のソースとして
深いリサーチを行う際に、あらゆるトピックについて高品質なリソースを素早く収集する
検索エージェント
https://github.com/user-attachments/assets/babab991-e4ff-4433-bdb7-eb7032e9cd11
Context Awesomeの2つの利用方法
モード | インストール方法 | 用途 |
MCPサーバー | ホストされたURLを指定するか、 | Claude Desktop, Cursor, Windsurf, VS Codeなど、MCPをネイティブサポートするエージェント |
CLI |
| スクリプト、シェルワークフロー、MCP非対応のエディタ、CIジョブ |
どちらのモードも同じnpmパッケージ(context-awesome)から提供され、同じホスト型バックエンドに接続します。
Related MCP server: agent101-mcp
MCPツール
すべてのMCPツールには1対1のCLIサブコマンドがあり、サーバーとCLIは同じ操作を公開しています。
ツール | CLI相当コマンド | 機能 |
|
| クエリに一致するAwesomeリスト全体のセクション/カテゴリを検索 |
|
| 個々の項目(ツール/ライブラリ/リソース)に対する全文検索 |
|
| 特定のリストとセクションから項目を取得(トークン制限あり) |
CLIコマンド
CLI(context-awesome)はホストされたバックエンドと直接通信します。MCPサーバーの場合は、個別のcontext-awesome-mcpバイナリを使用してください(以下の「インストール — MCPクライアント」を参照)。
context-awesome <command> [options]
Commands:
sections <query...> Find sections matching a query
search <query...> Search items (e.g., context-awesome search "postgres orm")
items <target> Fetch items from a list (by owner/repo or listId)
Globals:
--api-host <url> Backend API host (env: CONTEXT_AWESOME_API_HOST)
--api-key <key> API key (env: CONTEXT_AWESOME_API_KEY)
--json Emit raw JSON (for scripts)CLIのインストール
npm install -g context-awesome
context-awesome --help
context-awesome search "rate limiter"
context-awesome sections "graph databases"インストールせずにCLIを使用する
npx context-awesome search "vector database"インストール — MCPクライアント
リモートサーバー(推奨)
Context Awesomeはホスト型MCPサーバーとして利用可能です。インストールは不要です。
Settings → Cursor Settings → MCP → Add new global MCP server に移動します。
{
"mcpServers": {
"context-awesome": {
"url": "https://www.context-awesome.com/api/mcp"
}
}
}claude mcp add --transport http context-awesome https://www.context-awesome.com/api/mcpSettings → Connectors → Add Custom Connector を選択します。
Name:
Context AwesomeURL:
https://www.context-awesome.com/api/mcp
各クライアントの「リモートMCPを追加」UIで、同じURL(https://www.context-awesome.com/api/mcp)を使用してください。正確なスニペットについては、以下の各セクションを参照してください。
ローカルstdio(Claude Desktop、オフライン対応)
{
"mcpServers": {
"context-awesome": {
"command": "npx",
"args": ["-y", "context-awesome-mcp", "serve", "--transport", "stdio"],
"env": {
"CONTEXT_AWESOME_API_HOST": "https://api.context-awesome.com"
}
}
}
}ローカルHTTPトランスポート(カスタム統合用)
npx context-awesome-mcp serve --transport http --port 3001
# then point your client at http://localhost:3001/mcpローカル開発
git clone https://github.com/bh-rat/context-awesome.git
cd context-awesome
npm install
npm run build
# CLI
./build/cli.js search "graph databases"
# MCP server (stdio)
./build/index.js --transport stdio
# MCP Inspector
npm run inspectorバックエンドサービス
このMCPサーバーとCLIは、Awesomeリスト処理の負荷を処理するバックエンドAPIサービスに接続します。
バックエンドサービスは近日中にオープンソース化される予定であり、コミュニティがcontext-awesomeエコシステム全体に貢献し、その恩恵を受けられるようになります。
その他のインストール方法
{
"mcpServers": {
"context-awesome": {
"url": "https://www.context-awesome.com/api/mcp"
}
}
}{
"context_servers": {
"context-awesome": {
"url": "https://www.context-awesome.com/api/mcp"
}
}
}ハンバーガーメニューをクリック
Settingsを選択
Toolsに移動
+ Add MCPをクリック
URLを入力:
https://www.context-awesome.com/api/mcpName: Context Awesome
{
"mcpServers": {
"context-awesome": {
"type": "streamable-http",
"url": "https://www.context-awesome.com/api/mcp"
}
}
}{
"mcpServers": {
"context-awesome": {
"httpUrl": "https://www.context-awesome.com/api/mcp"
}
}
}"mcp": {
"context-awesome": {
"type": "remote",
"url": "https://www.context-awesome.com/api/mcp",
"enabled": true
}
}Settings->Tools->AI Assistant->Model Context Protocol (MCP)に移動+ AddをクリックURLを設定:
https://www.context-awesome.com/api/mcpOKをクリックしてApply
Kiro>MCP Serversに移動+ AddをクリックURLを設定:
https://www.context-awesome.com/api/mcpSaveをクリック
{
"mcpServers": {
"context-awesome": {
"url": "https://www.context-awesome.com/api/mcp"
}
}
}{
"mcpServers": {
"context-awesome": {
"url": "https://www.context-awesome.com/api/mcp"
}
}
}Settings>AI>Manage MCP serversに移動+ AddをクリックURLを設定:
https://www.context-awesome.com/api/mcpSaveをクリック
{
"mcpServers": {
"context-awesome": {
"type": "http",
"url": "https://www.context-awesome.com/api/mcp",
"tools": ["find_awesome_section", "search_awesome_items", "get_awesome_items"]
}
}
}Program>Install>Edit mcp.jsonに移動以下を追加:
{
"mcpServers": {
"context-awesome": {
"url": "https://www.context-awesome.com/api/mcp"
}
}
}{
"mcpServers": {
"context-awesome": {
"url": "https://www.context-awesome.com/api/mcp"
}
}
}Perplexity>Settingsに移動Connectorsを選択Add ConnectorをクリックAdvancedを選択Nameを入力:
Context AwesomeURLを入力:
https://www.context-awesome.com/api/mcp
{
"inputs": [],
"servers": {
"context-awesome": {
"type": "http",
"url": "https://www.context-awesome.com/api/mcp"
}
}
}{
"$schema": "https://charm.land/crush.json",
"mcp": {
"context-awesome": {
"type": "http",
"url": "https://www.context-awesome.com/api/mcp"
}
}
}acli rovodev mcp次に以下を追加:
{
"mcpServers": {
"context-awesome": {
"url": "https://www.context-awesome.com/api/mcp"
}
}
}Zencoderメニュー (...) に移動
Agent toolsを選択
Add custom MCPをクリック
Name:
Context AwesomeURL:
https://www.context-awesome.com/api/mcp
Qodo Genチャットパネルを開く
Connect more toolsをクリック
Add new MCPをクリック
以下を追加:
{
"mcpServers": {
"context-awesome": {
"url": "https://www.context-awesome.com/api/mcp"
}
}
}ライセンス
MIT
貢献
貢献を歓迎します!以下の手順に従ってください:
リポジトリをフォークする
フィーチャーブランチを作成する
新機能のテストを追加する
すべてのテストがパスすることを確認する
プルリクエストを送信する
サポート
問題や質問については以下まで:
GitHub Issues: https://github.com/bh-rat/context-awesome/issues
帰属表示
このプロジェクトは、GitHub上の8,500以上のAwesomeリストのデータを使用しています。データが含まれているすべてのリポジトリの完全なリストについては、ATTRIBUTION.mdを参照してください。
クレジット
以下の技術を使用して構築されました:
context7 MCPサーバーのパターンに触発されました
Available Tools
2 toolsfind_awesome_sectionFind Awesome List SectionAInspect
Discovers sections/categories across awesome lists matching a search query and returns matching sections from awesome lists.
You MUST call this function before 'get_awesome_items' to discover available sections UNLESS the user explicitly provides a githubRepo or listId.
Selection Process:
Analyze the query to understand what type of resources the user is looking for
Return the most relevant matches based on:
Name similarity to the query and the awesome lists section
Category/section relevance of the awesome lists
Number of items in the section
Confidence score
Response Format:
Returns matching sections of the awesome lists with metadata
Includes repository information, item counts, and confidence score
Use the githubRepo or listId with relevant sections from results for get_awesome_items
For ambiguous queries, multiple relevant sections will be returned for the user to choose from.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search terms for finding sections across awesome lists | |
| confidence | No | Minimum confidence score (0-1) | |
| limit | No | Maximum sections to return |
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 effectively describes the tool's behavior: the selection process (4 criteria), response format (metadata included), and handling of ambiguous queries (returns multiple sections). It doesn't mention rate limits, authentication needs, or error conditions, but provides substantial operational context.
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 well-structured with clear sections: purpose statement, usage requirement, selection process, response format, and handling of ambiguous queries. While comprehensive, some sentences could be more concise (e.g., the selection process could be bulleted more efficiently). Overall, it's appropriately sized for the tool's complexity.
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 no annotations and no output schema, the description provides substantial context: purpose, usage rules, selection algorithm, response format, and relationship to sibling tool. It doesn't explicitly describe the exact structure of returned metadata or error cases, but covers most essential aspects for a search/discovery tool.
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 doesn't add any parameter-specific information beyond what's in the schema. The baseline of 3 is appropriate when the schema does the heavy lifting for parameter documentation.
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: 'Discovers sections/categories across awesome lists matching a search query and returns matching sections from awesome lists.' It specifies the verb ('discovers'), resource ('sections/categories across awesome lists'), and distinguishes it from its sibling 'get_awesome_items' by explaining this tool is for discovering sections before retrieving items.
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 explicit usage guidance: 'You MUST call this function before 'get_awesome_items' to discover available sections UNLESS the user explicitly provides a githubRepo or listId.' It clearly states when to use this tool versus its sibling and includes conditions for when it's not needed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_awesome_itemsGet Awesome List ItemsAInspect
Retrieves items from a specific awesome list or section with token limiting. You must call 'find_awesome_section' first to discover available sections, UNLESS the user explicitly provides a githubRepo or listId.
| Name | Required | Description | Default |
|---|---|---|---|
| listId | No | UUID of the list (from find_awesome_section results) | |
| githubRepo | No | GitHub repo path (e.g., 'sindresorhus/awesome') from find_awesome_section results | |
| section | No | Category/section name to filter | |
| subcategory | No | Subcategory to filter | |
| tokens | No | Maximum number of tokens to return (default: 10000). Higher values provide more items but consume more tokens. | |
| offset | No | Pagination offset for retrieving more items |
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 effectively describes key behaviors: the token limiting mechanism ('with token limiting'), the dependency on another tool ('call 'find_awesome_section' first'), and the conditional logic for parameters. However, it doesn't mention error handling, rate limits, or authentication needs, which are common gaps for retrieval tools.
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 with two sentences that each serve distinct purposes: the first states the core functionality with a key constraint, and the second provides essential usage guidance. There is no wasted language, and information is front-loaded effectively.
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 (6 parameters, dependency on another tool) and lack of annotations/output schema, the description does well by covering purpose, usage guidelines, and key behavioral aspects. However, it doesn't describe the return format (e.g., structure of items, pagination details), which would be helpful since there's no output schema, leaving some gaps in completeness.
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 6 parameters thoroughly. The description adds minimal parameter semantics beyond the schema, only implying that 'githubRepo' and 'listId' come from 'find_awesome_section' results. This meets the baseline of 3 when schema coverage is high, but doesn't provide significant additional value.
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 'retrieves' and the resource 'items from a specific awesome list or section', specifying the action and target. It distinguishes from the sibling tool 'find_awesome_section' by indicating this tool is for retrieving items after sections are identified, establishing a clear functional relationship.
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 explicitly states when to use this tool: 'You must call 'find_awesome_section' first to discover available sections, UNLESS the user explicitly provides a githubRepo or listId.' This provides clear prerequisites and alternatives, directly addressing the sibling tool relationship and user input scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
The two tools have clearly distinct purposes: 'find_awesome_section' discovers sections/categories across awesome lists based on a search query, while 'get_awesome_items' retrieves actual items from a specific list or section. There is no overlap in functionality—one is for discovery and the other for retrieval, making them perfectly distinguishable.
Both tools follow a consistent verb_noun pattern with snake_case: 'find_awesome_section' and 'get_awesome_items'. The naming is predictable and readable, with 'find' and 'get' as appropriate verbs for their respective actions, maintaining uniformity throughout the set.
With only 2 tools, the server feels thin for its apparent purpose of interacting with awesome lists. While the tools cover discovery and retrieval, typical operations like creating, updating, or deleting items are missing, suggesting the scope might be limited or incomplete. A count of 2 is borderline for a functional server in this domain.
The tool surface is significantly incomplete for the domain of awesome list management. It only supports discovery and retrieval, lacking any CRUD operations such as adding, updating, or removing items or sections. This will likely cause agent failures when full lifecycle management is needed, as there are obvious gaps in coverage.
Maintenance
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
AI Agent Source Registry. 288K+ curated sources for agentic search and discovery.
Agent-first resource directory for AI agents: protocols, security, RAG, memory, evals, and more.
Curated knowledge API for AI agents - skill packs, semantic search, validated patterns.
Live data gateway for AI — 3,300+ tools across 750+ sources, with citations
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceProvides AI assistants with searchable access to documentation from 170+ curated repositories and 1000+ popular GitHub projects across 20+ categories including trading, AI/ML, DevOps, and web development.3MIT
- AlicenseNot gradedqualityNot gradedmaintenanceSearch and discover 500+ tools, APIs, and services for AI agents. Browse 15 categories, get recommendations, and access structured metadata including auth methods, free tiers, and example calls.1
- AlicenseAqualityAmaintenanceGive your AI agent access to 8,400+ software tools — search, compare, get pricing, find alternatives, and discover the best tool for any use case.81614MIT
- FlicenseNot gradedqualityCmaintenanceEnables AI agents to search and retrieve market signals, revenue ideas, and growth tactics from 2,000+ curated entries across 18 sources.
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/bh-rat/context-awesome'
If you have feedback or need assistance with the MCP directory API, please join our Discord server