GitHub tools are now integrated directly into Learning MCP! No separate service needed.
Key Feature: GitHub searches are automatically scoped to your profile's configured username, making queries simpler and more intuitive.
Search GitHub repositories by keywords (auto-scoped to your profile's GitHub user).
Simple Example (Recommended):
{
"tool": "search_github_repos",
"arguments": {
"query": "RAG",
"profile": "avi-cohen",
"limit": 10
}
}This automatically searches "RAG user:aviciot" because avi-cohen profile has github.username: aviciot
Override with explicit user:
{
"query": "RAG user:microsoft",
"profile": "avi-cohen"
}Searches Microsoft's repos instead
Response:
{
"query": "RAG user:aviciot",
"profile": "avi-cohen",
"count": 3,
"repositories": [
{
"name": "learning-mcp",
"description": "RAG system with MCP integration",
"url": "https://github.com/aviciot/learning-mcp",
"stars": 15,
"language": "Python",
"topics": ["rag", "mcp", "qdrant"]
}
]
}Read any file from a GitHub repository.
Example:
{
"tool": "get_github_file",
"arguments": {
"owner": "aviciot",
"repo": "learning-mcp",
"path": "README.md"
}
}Response:
{
"name": "README.md",
"content": "# Learning MCP\n\n...",
"size": 5420,
"url": "https://github.com/aviciot/learning-mcp/blob/main/README.md"
}List all repositories for the profile's GitHub user.
Simple Example (Recommended):
{
"tool": "list_user_github_repos",
"arguments": {
"profile": "avi-cohen",
"limit": 30
}
}Automatically lists repos for aviciot (from profile config)
Response:
{
"username": "aviciot",
"profile": "avi-cohen",
"count": 15,
"repositories": [...]
}Edit config/learning.yaml:
avi-cohen:
github:
username: aviciot # Your GitHub username
documents:
- type: json
path: /app/data/persons/avi_profile.json
# ... rest of profile config- Go to: https://github.com/settings/tokens
- Click "Generate new token (classic)"
- Select scopes:
public_repo(for public repos)repo(for private repos - optional)
- Copy the token:
ghp_xxxxxxxxxxxxx
# Add this line to your .env file
GITHUB_PERSONAL_ACCESS_TOKEN=ghp_your_token_heredocker compose restart learning-mcp# Test GitHub search
curl -X POST http://localhost:8013/mcp `
-H "Content-Type: application/json" `
-d '{
"method": "tools/call",
"params": {
"name": "search_github_repos",
"arguments": {
"query": "RAG user:aviciot",
"limit": 5
}
}
}'import httpx
async def search_user_content(query: str):
"""Search both documents AND GitHub repos"""
async with httpx.AsyncClient() as client:
# Search your documents
docs = await client.post(
"http://localhost:8013/mcp",
json={
"method": "tools/call",
"params": {
"name": "search_docs",
"arguments": {
"query": query,
"profile": "avi-cohen",
"top_k": 5
}
}
}
)
# Search GitHub repos
repos = await client.post(
"http://localhost:8013/mcp",
json={
"method": "tools/call",
"params": {
"name": "search_github_repos",
"arguments": {
"query": f"{query} user:aviciot",
"limit": 5
}
}
}
)
# Combine results
return {
"documents": docs.json(),
"repositories": repos.json()
}✅ Single service - No separate GitHub MCP needed
✅ Same endpoint - All tools at http://localhost:8013/mcp
✅ Simple config - Just add GitHub token to .env
✅ Fast - Direct GitHub API calls, no intermediate service
✅ Integrated - Use alongside your existing search_docs and plan_api_call tools
- With token: 5,000 requests/hour
- Without token: 60 requests/hour (not recommended)
Always provide a token for production use!
Query: "Show me RAG projects"
→ Calls: search_github_repos("RAG user:aviciot")
→ Returns: learning-mcp, other-rag-project, etc.
Query: "What's in the learning-mcp README?"
→ Calls: get_github_file("aviciot", "learning-mcp", "README.md")
→ Returns: Full README content
Query: "List all my repositories"
→ Calls: list_user_github_repos("aviciot")
→ Returns: All your repos sorted by update date
- Add GitHub token to
.env - Restart Docker
- Test the tools
- Integrate into your Omni API!
🚀 Now you have ONE MCP server with everything!