genai-solutions-mcp
genai-solutions-mcp
厳選された生成AIツールのデータベース—2023年からNotionで管理している1,197件のレコード—を、AIアシスタントが直接クエリできる4つのツールとして公開するMCPサーバーです。
モデルに「どんなAIツールがあるか」と尋ねて、もっともらしいけど古い答えを得る代わりに、背後に人間がいるデータセットを検索できます。
> Which open-source tools in here run locally and have a CLI?
> Compare Firecrawl and the other scraping options.インストール
npm install
npm run build
npm startAPIキーもネットワークもデータベースも不要です。データセットはリポジトリに同梱されています。
MCPクライアント(ここではClaude Desktop)に登録します:
{
"mcpServers": {
"genai-solutions": {
"command": "node",
"args": ["/absolute/path/to/genai-solutions-mcp/dist/src/index.js"]
}
}
}Related MCP server: disvr
ツール
ツール | 目的 |
| 自由テキスト+フィルター(タイプ、エコシステム、機能、出典、おすすめ) |
| 1つのIDに対する完全なレコード |
| 各カテゴリとそのレコード数 |
| 同じフィールドで並べた2~4件のレコード |
設計上の判断
コミットされたスナップショットであって、リアルタイムのNotionプロキシではない。 明白な設計は、ツール呼び出しのたびにNotion APIを呼び出すことです。しかしそれでは、このリポジトリは私以外の誰にとっても無意味になります——あなたには私のトークンとデータベースが必要になるからです。代わりに、scripts/sync-notion.ts がNotionを data/solutions.json にエクスポートし、それをここでバージョン管理し、サーバーはそのファイルのみを読み取ります。トレードオフは鮮度——データは最後の同期時点のものです——と、誰でも15秒でクローンして実行でき、認証情報も呼び出し時のネットワーク依存もレート制限もないサーバーとの間です。元のデータは最大でも週に一度しか変わらないので、鮮度は諦めやすい方です。
部分文字列検索であって、埋め込みベースではない。 約1,100件のレコードは、サブミリ秒の線形スキャンで処理できます。ベクトルインデックスを使うと、同期に埋め込みステップ、モデル依存、非決定論的な結果、そしてスナップショットと整合性を保つためのインデックスが追加されます——その代わりに、ほとんどの有用なクエリが名前とカテゴリであるコーパスでの意味検索が得られます。データセットが一桁大きくなったり、サマリーが長くなったりした場合、これが最初に見直すべき点です。
検索は投影を返し、完全なレコードは返さない。 search_solutions は id、name、type、url のみを返します。20件の結果に対して完全なレコードを返すと、エージェントのコンテキストの大部分を、通常は不要なフィールドに費やすことになります。必要な場合は get_solution があります。
同期ではホワイトリスト(許可リスト)方式を採用し、ブラックリスト(禁止リスト)方式は使わない。 Notionデータベースには、公開されるべきではない内部のワークフロー状態や添付ファイルが含まれています。scripts/sync-notion.ts はエクスポートするプロパティを明示的に指定しているため、後でNotionにプライベートなカラムを追加しても、ここに漏洩することはありません。
既知の制限
Notionの
Typeは単一選択のため、各ツールはたとえ2つに当てはまっても、1つのカテゴリしか持ちません。カテゴリの値は3年間にわたって手作業で入力されたため、ばらつきがあります。同期では大文字小文字の重複を統合しますが、類義語をマージすることはありません。
フィールド重み付け部分文字列マッチングを超える関連性ランキングはありません。
属性タグ付けにはばらつきがあります。
LocalとOpen Sourceは異なる時期に異なる習慣で適用され、多くのツールが両方に該当するにもかかわらず、1件のレコードにしか重複していません。フィルターは何がタグ付けされているかについては正直ですが、何が真実かについては正直ではありません——これは、このデータセットがほとんどの実際の内部データベースと共有する特性です。Nodeの解決はホスト環境に依存します。サーバーは、起動コンテキストによって同じマシン上の異なるNodeインストールで起動することが観察されました。それが重要な場合は、クライアント設定でランタイムパスを固定してください。
同期(メンテナーのみ)
NOTION_TOKEN=… NOTION_DATABASE_ID=… npm run sync
git diff data/solutions.json # read it before committingライセンス
MIT
Available Tools
4 toolscompare_solutionsCompare solutionsB
Return 2 to 4 solutions side by side on the same fields.
| Name | Required | Description | Default |
|---|---|---|---|
| ids | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden of disclosing behavioral traits. The description only mentions returning solutions side by side, but does not state whether this tool is read-only, any side effects, or constraints like required permissions. It lacks transparency 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 concise sentence that uses active voice and front-loads the key information (return 2 to 4 solutions). No unnecessary words.
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 that there is no output schema and no annotations, the description is minimal. It tells what the tool does and the range of solutions, but does not describe the output format, any sorting or ordering, or related constraints like required fields for comparison. It is adequate but incomplete.
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 describes the only parameter 'ids' with min/max items, but the description adds context that the output is a side-by-side comparison on the same fields. Since schema coverage is 0%, the description partially compensates by explaining the purpose, but does not elaborate on the 'ids' parameter meaning or format.
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 returns 2 to 4 solutions side by side on the same fields, which provides a specific verb ('return') and resource ('solutions'). It distinguishes from siblings like 'search_solutions' or 'get_solution' by emphasizing comparison.
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 that this tool is for comparing multiple solutions, but it does not provide explicit guidance on when to use it versus alternatives like 'get_solution' or 'search_solutions'. No when-not-to-use or exclusion criteria are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_solutionGet one solutionA
Return the full record for a single solution by id.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Since no annotations are provided, the description bears the full burden of behavioral disclosure. It confirms a read operation ('Return the full record') without indicating idempotency, rate limits, or error behavior. It does not state whether the returned record is guaranteed fresh or cached, nor whether authentication is needed. This is adequate but minimal.
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 sentence (14 words) that efficiently captures purpose, resource, and method. Every word is relevant. No wasted phrasing. Front-loaded with the action 'Return the full record' – ideal for scanning.
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 simplicity (1 required param, no nested objects, no output schema, no annotations), the description provides sufficient functional purpose. However, it lacks mention of what happens if the id is invalid (e.g., 404), or whether the response includes nested objects like related items. The absence of an output schema means the description should hint at the 'full record' structure, but it does not enumerate fields. It is just adequate for a simple retrieval 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 0%, meaning the description must compensate. The description mentions 'by id,' which maps to the required 'id' parameter, adding basic context. However, it does not clarify that id is a string (schema indicates type), nor does it provide format guidance (e.g., UUID vs plain string). For a single required param, this is borderline acceptable but lacks helpful detail beyond the schema.
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 'Return the full record for a single solution by id,' specifying the verb (return) and resource (full record for solution) and the identifying method (by id). It distinguishes from list_categories and search_solutions (which retrieve multiple) and compare_solutions (comparison), but could be more explicit that this is the singular retrieval endpoint.
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 use when you need a complete record of a known solution, contrasting with search_solutions (which returns summaries/partial data) and list_categories (which returns categories, not solutions). However, no explicit 'when not to use' guidance is given, though the sibling context clarifies alternatives. The lack of mention about requiring the ID beforehand is a minor gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_categoriesList categoriesA
Return every category present in the database with its record count, so filters can be built against real values rather than guesses.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
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. It discloses that the tool returns every category with its record count, which is a clear behavioral trait. It does not mention performance, data freshness, or side effects, but for a simple read-only list tool, the description is adequate.
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 sentence that is front-loaded with the key action ('Return every category') and includes the purpose. Every word earns its place with no wasted content.
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 parameters, no output schema, and no annotations, the description is relatively complete for a simple list tool. However, it could be improved by mentioning the response format (e.g., whether categories are sorted) or any limits. The explanation of purpose is helpful, but the lack of output schema details leaves some ambiguity.
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?
There are no parameters, so schema description coverage is trivially 100%. The description adds no parameter information, but with zero parameters, a baseline score of 4 is appropriate as the description already provides value beyond the schema.
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 states 'Return every category' with a specific verb and resource, and explains the purpose ('so filters can be built against real values rather than guesses'). This clearly distinguishes it from sibling tools which deal with solutions, not categories.
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 when to use this tool: when building filters based on real category values. It provides context but does not explicitly exclude alternatives or state when not to use it. However, siblings are clearly different (solutions), so the guidance is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_solutionsSearch GenAI solutionsA
Search a curated database of generative AI tools by free text and filters. Returns a short projection (id, name, type, url); call get_solution with an id for the full record.
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | Category — call list_categories for valid values | |
| limit | No | Default 20, max 100 | |
| query | No | Free text, matched against name | |
| origin | No | All must match. E.g. France, EMEA, China, YC | |
| ecosystem | No | ||
| picksOnly | No | Restrict to curator's picks | |
| capabilities | No | All must match. E.g. API, Open Source, Local, Terminal, Installation, HF |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description takes on the full burden of behavioral disclosure. It explains the return shape (short projection) and directs to get_solution for full records. However, it omits behavioral traits such as read-only nature, rate limits, authentication requirements, pagination behavior (though limit param exists), result ordering, or what happens with empty results. This is a moderate disclosure but has gaps.
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?
Two sentences front-load the action and result, then provide a clear pointer to the sibling tool. Every sentence serves a distinct purpose, with no fluff or repetition. Ideal conciseness for a search tool.
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 7 optional parameters, no required fields, and no output schema, the description covers the main input mechanism (free text and filters), the output projection, and the follow-up sibling call. However, it does not explain the overall filtering logic (AND across parameters) or pagination, which are implicit from the limit parameter. Still, it is reasonably complete for standard usage.
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 high (86%), so the schema already provides strong param documentation. The description adds no additional parameter-level information beyond the schema (e.g., it doesn't explain how multiple filters combine or the meaning of limit's default). Given the high baseline, the description's value is neutral; it doesn't degrade but doesn't enhance.
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 'Search' and the resource 'curated database of generative AI tools', and specifies the method 'by free text and filters'. It distinguishes itself from siblings by mentioning 'returns a short projection (id, name, type, url); call get_solution...' and implicitly from list_categories (for valid values of type) and compare_solutions (not mentioned but different purpose).
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 tells the agent when to use get_solution ('for the full record') after a search, which provides a clear alternative. However, it does not explicitly state when to avoid search_solutions or when to use list_categories or compare_solutions, leaving some ambiguity for related sibling tools.
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.
4 tool updates
v0.1.0- First observed
compare_solutions - First observed
get_solution - First observed
list_categories - First observed
search_solutions
TDQS
Scored across 4 tools
Each tool has a clearly distinct purpose: search for filtering, get for full details, list categories for filter options, and compare for side-by-side comparison. No overlap exists.
All tool names follow a consistent verb_noun pattern in snake_case (search_solutions, get_solution, list_categories, compare_solutions), making them predictable and easy to understand.
With four tools, the server is well-scoped for a curated database of generative AI solutions. Each tool earns its place, covering search, retrieval, category listing, and comparison without unnecessary bloat.
The tool set covers the core read-only operations needed for a solutions database: discovery (search), detail retrieval (get), filter exploration (list_categories), and comparison. No obvious gaps—the domain is fully addressed.
Maintenance
Related MCP Connectors
The Remote MCP server acts as a standardized bridge between LLM applications (like Claude, ChatGPT, and Cursor) and external services, enabling AI agents to access external tools and resources. Its primary capability is providing a centralized search tool to discover other MCP servers and their respective tools. Unlike local implementations, it runs remotely with OAuth authentication and permission controls for security.
A registry of AI agent tools — MCP servers, APIs, CLIs, SDKs — kept current by automated ingestion.
One AI endpoint to search and call 22k+ MCP servers; 50+ hosted tools work instantly, no key.
Find, vet, and run MCP tools through a secure audited gateway with prompt-injection risk scoring
Related MCP Servers
- AlicenseAqualityDmaintenanceA Meta-MCP Server that acts as a tool discovery service, helping AI assistants find appropriate MCP servers from a database of 800+ servers when they need capabilities that aren't currently available.123MIT
- AlicenseNot gradedqualityFmaintenanceTool search engine for AI agents. One API call to discover the best MCP server for any task. 900+ services indexed with 4-dimensional value ranking.MIT
- AlicenseNot gradedqualityDmaintenanceAn MCP server that enables AI agents to automatically discover, install, and learn to use new tools without manual configuration.61 npm18MIT
- FlicenseNot gradedqualityCmaintenanceSelf-evolving MCP server that automatically discovers, generates, and registers new tools on demand using AI, enabling dynamic tool expansion without manual intervention.-