Spryker Package Search Tool
# Spryker Package Search Tool
A command-line tool that initializes a Model Context Protocol (MCP) server to provide **package search capabilities** for Spryker GitHub repositories.
This tool allows you to search Spryker packages or their code contents using natural language queries. It supports filtering by specific GitHub organizations.
---
## ⨠Features
- Search for Spryker packages on GitHub
- Code-level search across Spryker repositories
- Support for filtering by organization (`spryker`, `spryker-eco`, `spryker-sdk`, `spryker-shop`)
- Runs as an MCP server using stdio transport
---


## š Installation
Ensure **npm** and **npx** are installed.
```bash
git clone
```
```bash
cd spryker-module-finder && npm install
```
## MCP server makes the tool compatible with various AI agents to extend context with Spryker Project context
### Tools:
- [Claude desktop](https://claude.ai/download)
- [JetBrains AI Assistant plugin](https://plugins.jetbrains.com/plugin/22282-jetbrains-ai-assistant)
- [Qodo Gen JetBrains plugin](https://plugins.jetbrains.com/plugin/21206-qodo-gen)
- [Windsurf](https://docs.windsurf.com/windsurf/mcp)
- [Cursor](https://docs.cursor.com/context/model-context-protocol)
- [Cursor](https://docs.cursor.com/context/model-context-protocol)
- etc.
## Settings
You can add as many servers as projects, just by configuring them properly using the project name.
```json
{
"mcpServers": {
"sprykerPackageSearch": {
"command": "npx",
"args": [
"-y",
"/FULL_PATH/spryker-module-finder"
],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN":"token"
}
}
}
}
```
## Debug
```bash
npx @modelcontextprotocol/inspector npx node src/index.js
```
## Test
```bash
npm test
```
```bash
npx eslint . --fix
```
## š§ Available Tools
#### search_spryker_packages
Searches for Spryker packages based on a natural language query.
Parameters:
- query (string, required): The natural language query to search GitHub repositories.
- organisations (array of strings, optional): List of GitHub orgs to filter by. Example:
["spryker", "spryker-eco", "spryker-sdk", "spryker-shop"]
#### search_spryker_package_code
Searches for PHP code inside Spryker GitHub repositories.
Parameters:
- query (string, required): The natural language query to search within code.
- organisations (array of strings, optional): List of GitHub orgs to filter by. Example:
["spryker", "spryker-eco", "spryker-sdk", "spryker-shop"]
-
#### search_spryker_documentation_path
Searches for Spryker documentation links.
Parameters:
- query (string, required): The natural language query to search Spryker documentation links.
## š§© Architecture
Built with Model Context Protocol SDK
Uses StdioServerTransport for communication
Validates input with zod
Handles GitHub API integration for repository and code search
š License
[MIT](LICENSE)
## š„ Authors
* [Vitalii Ivanov](https://www.linkedin.com/in/vitalii-ivanov-306b261a3/)
TDQS
Scored across 3 tools
The three tools have distinct primary targets: documentation paths, package code, and package repository search. However, 'search_spryker_package_code' and 'search_spryker_packages' could be slightly confusing as both involve GitHub repositories, though their descriptions clarify one searches code within repositories and the other searches the package repository itself.
All tool names follow a consistent snake_case pattern with the verb 'search' followed by a specific noun phrase (spryker_documentation_path, spryker_package_code, spryker_packages). This uniformity makes the tool set predictable and easy to understand.
With only 3 tools, the server feels thin for a 'Package Search Tool' that might imply broader functionality like installing or managing packages. While the tools cover key search aspects, the limited count may restrict agent workflows, especially if additional operations like package installation or version checking are needed.
The tools provide search capabilities across documentation, code, and packages, which aligns with the server's name. However, there are notable gaps: no tools for actions like installing packages, checking package versions, or managing dependencies, which are common in package management contexts. This limits the server to read-only search operations.