@@ -154,45 +154,72 @@ def validate_installations(manifest: dict, repo_url: str) -> Optional[dict]:
154154TASK: Find installation instructions in the README and convert them to the exact schema format used in the MCP registry.
155155
156156INSTALLATION SCHEMA EXAMPLES:
157-
158- 1. NPX INSTALLATIONS (most common):
159- ```json
160- "npm ": {{
161- "type ": "npm",
162- "command ": "npx",
163- "args": ["-y", "@package/name"] ,
164- "description": "Install with npx"
165- }}
166- ```
167-
168- 2. UVX INSTALLATIONS:
169- ```json
170- "uvx ": {{
171- "type ": "uvx",
172- "command": "uvx",
173- "args": ["package-name"],
174- "description": "Run with Claude Desktop"
157+ <README> Docker
158+ {{
159+ "mcpServers": {{
160+ "brave-search ": {{
161+ "command ": "docker",
162+ "args ": [
163+ "run" ,
164+ "-i",
165+ "--rm",
166+ "-e",
167+ "BRAVE_API_KEY",
168+ "mcp/brave-search"
169+ ],
170+ "env ": {{
171+ "BRAVE_API_KEY ": "YOUR_API_KEY_HERE"
172+ }}
173+ }}
174+ }}
175175}}
176- ```
177- OR with git URL:
178- ```json
179- "uvx": {{
180- "type": "uvx",
181- "command": "uvx",
182- "args": ["--from", "git+https://github.com/user/repo", "command-name"],
183- "description": "Install from git"
176+ NPX
177+ {{
178+ "mcpServers": {{
179+ "brave-search": {{
180+ "command": "npx",
181+ "args": [
182+ "-y",
183+ "@modelcontextprotocol/server-brave-search"
184+ ],
185+ "env": {{
186+ "BRAVE_API_KEY": "YOUR_API_KEY_HERE"
187+ }}
188+ }}
189+ }}
184190}}
185- ```
186-
187- 3. DOCKER INSTALLATIONS:
188- ```json
189- "docker": {{
190- "type": "docker",
191- "command": "docker",
192- "args": ["run", "-i", "--rm", "image-name"],
193- "description": "Run using Docker"
191+ </README>
192+ From the example README, you should get:
193+ {{
194+ "installations": [
195+ {{
196+ "type": "docker",
197+ "command": "docker",
198+ "args": [
199+ "run",
200+ "-i",
201+ "--rm",
202+ "-e",
203+ "BRAVE_API_KEY",
204+ "mcp/brave-search"
205+ ],
206+ "env": {{
207+ "BRAVE_API_KEY": "${{YOUR_API_KEY_HERE}}"
208+ }}
209+ }},
210+ {{
211+ "type": "npm",
212+ "command": "npx",
213+ "args": [
214+ "-y",
215+ "@modelcontextprotocol/server-brave-search"
216+ ],
217+ "env": {{
218+ "BRAVE_API_KEY": "${{YOUR_API_KEY_HERE}}"
219+ }}
220+ }}
221+ ]
194222}}
195- ```
196223
197224PROCESS:
1982251. Read the README.md from { repo_url }
@@ -204,8 +231,8 @@ def validate_installations(manifest: dict, repo_url: str) -> Optional[dict]:
204231 - Copy the EXACT package names and arguments from README
205232
206233CRITICAL RULES:
207- - Use exact package names from README (don't guess or modify)
208- - Match the schema format exactly as shown in examples
234+ - Use exact argument from README (don't guess or modify)
235+ - Match the schema format as shown in examples
209236- Include ALL installation methods mentioned in README
210237- Remove installation methods NOT mentioned in README
211238- For npx: always use type "npm" with command "npx" and args ["-y", "package-name"]
@@ -288,7 +315,9 @@ def main():
288315
289316 # Step 2: Validate and correct installations
290317 print ("Step 2: Validating installations against README..." )
318+ print (f"Before: { json .dumps (manifest , indent = 2 )} " )
291319 manifest = validate_installations (manifest , args .repo_url )
320+ print (f"After: { json .dumps (manifest , indent = 2 )} " )
292321
293322 # Step 3: Save manifest
294323 print ("Step 3: Saving manifest..." )
0 commit comments