awesome-agent-skills-mcp fails in ToolHive: list_skills unusable due to missing git + response format mismatch
Nobody has claimed this yet.
- Dominant language
- Go
- Stars
- 2.2k
- Forks
- 300
- Avg merge
- 1d 15h
- Merged PRs (30d)
- 184
Description
Summary
When [awesome-agent-skills-mcp](https://github.com/shadowrootdev/awesome-agent-skills-mcp) is launched by ToolHive as a npm converted to Docker container, list_skills fails to provide usable results. The container cannot sync the skills repo because git is not installed (spawn git ENOENT), and the tool response format is JSON-in-text rather than structured output matching the declared outputSchema.
Environment
- OS: Windows 11 (10.0.26200)
- Docker Desktop: 4.65.0
- Docker Engine: 29.2.1
Steps to Reproduce
- Start ToolHive with
awesome-agent-skills-mcpenabled (containerized). - Call
refresh_skillsorlist_skillsthrough ToolHive. - Inspect container logs (
docker logs <container-id>).
Actual Behavior
- Container logs show git sync failure:
Failed to initialize git repository: GitError: Error: spawn git ENOENT - Attempted command includes clone of:
https://github.com/VoltAgent/awesome-agent-skills.git list_skillsreturns empty data ({"skills":[],"total":0}) when sync failed.- ToolHive reports list failure / structured output mismatch (tool has
outputSchemabut response is not treated as structured).
Expected Behavior
refresh_skillsshould successfully clone/pull the skills repository.list_skillsshould return a populated, schema-valid structured object (not JSON serialized into a text field).- ToolHive should be able to parse the response without structured-content errors.
Evidence (from container)
Git missing in container:
docker exec <container-id> git --version -> executable not found
Relevant log lines:
Failed to initialize git repository: GitError: Error: spawn git ENOENTCloning repository from https://github.com/VoltAgent/awesome-agent-skills.git...Repository sync failed: Failed to initialize: Error: spawn git ENOENT
Tool response observed:
{"skills":[],"total":0} via content[0].text
Suspected Root Causes
- Container image missing git
- Repo sync cannot run, so skills registry stays empty.
- Tool output format mismatch
list_skillsdeclares anoutputSchemaobject but returns JSON string insidecontent: [{ type: "text", text: JSON.stringify(...) }], which ToolHive may not accept as structured output.
Proposed Fix
- Image fix: Include
gitin theawesome-agent-skills-mcpcontainer image (persistent fix; runtime install is not durable). - Response fix: Return schema-compatible structured output for tool calls (or ToolHive-compatible structured content), rather than JSON string embedded in text.
- Validation guard: Ensure
list_skillsalways returns schema-safe fields even when sync fails.
Impact
awesome-agent-skills-mcpis effectively non-functional in ToolHive for listing/refreshing skills in fresh containers.- End users cannot discover or use skills reliably.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the container image definition and the list_skills and refresh_skills entry points mentioned in the report. Reproduce with the documented Docker commands and inspect the logs and content[0].text response. Done means repository sync works in a fresh container and list_skills returns populated, schema-valid structured output, including when sync fails.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- docker, git, nodejs
- Domain
- api, devops
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100