Skip to content

distrihub/mcp-servers

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MCP Servers - Rust Implementation

A collection of MCP (Model Context Protocol) server implementations in Rust, designed for integration with AI agents and the distri framework.

Overview

This workspace contains multiple MCP server implementations, each providing specialized functionality for different use cases:

Available MCP Servers

Server Status Description Tools Resources Use Cases
mcp-tavily 🔧 Work in Progress Tavily search API integration search, search_news, get_extract tavily://search/{query} AI-powered web search, news aggregation
mcp-coder 🔧 Work in Progress File system operations, code analysis & formatting read_file, write_file, search_files, list_directory, get_project_structure file://{path}, directory://{path} Code development, file management, project analysis
mcp-twitter 🔧 Work in Progress Twitter/X API integration post_tweet, search_tweets, get_user_info, get_user_timeline, get_tweet_analytics twitter://user/{id}, twitter://tweet/{id}, twitter://trends/{location} Social media automation, content posting, analytics
mcp-crawl 🔧 Work in Progress Advanced web crawling with spider-rs scrape spider://scrape/{url} Web data extraction, site mapping, content analysis
mcp-reddit 🔧 Work in Progress Reddit API integration get_posts, search_posts, get_comments, get_subreddit_info, get_user_info, get_trending_subreddits, get_user_posts, get_user_comments reddit://posts, reddit://comments, reddit://subreddits, reddit://users Social media monitoring, content analysis, community insights

Installation

Building from source

# Clone the repository
git clone https://github.com/your-org/mcp-servers
cd mcp-servers

# Build all servers
cargo build --release

# Or build individual servers
cargo build --release --bin mcp-coder
cargo build --release --bin mcp-twitter
cargo build --release --bin mcp-crawl
cargo build --release --bin mcp-tavily
cargo build --release --bin mcp-reddit

Integration with MCP Clients

Claude Desktop

Add to your Claude Desktop configuration:

{
  "mcpServers": {
    "coder": {
      "command": "/path/to/mcp-servers/target/release/mcp-coder",
      "args": ["--directory", "/path/to/your/project"]
    },
    "twitter": {
      "command": "/path/to/mcp-servers/target/release/mcp-twitter",
      "env": {
        "TWITTER_API_KEY": "your_key",
        "TWITTER_API_SECRET": "your_secret",
        "TWITTER_BEARER_TOKEN": "your_bearer_token"
      }
    },
    "spider": {
      "command": "/path/to/mcp-servers/target/release/mcp-crawl",
      "args": ["--stealth-mode"]
    },
    "crawler": {
      "command": "/path/to/mcp-servers/target/release/mcp-crawler"
    },
    "tavily": {
      "command": "/path/to/mcp-servers/target/release/mcp-tavily",
      "env": {
        "TAVILY_API_KEY": "your_api_key"
      }
    },
    "reddit": {
      "command": "/path/to/mcp-servers/target/release/mcp-reddit",
      "env": {
        "REDDIT_CLIENT_ID": "your_client_id",
        "REDDIT_CLIENT_SECRET": "your_client_secret",
        "REDDIT_USER_AGENT": "YourAppName/1.0 (by /u/YourUsername)"
      }
    },
    "kg": {
      "command": "/path/to/mcp-servers/target/release/mcp-kg",
      "args": ["--data-path", "/path/to/kg/data"]
    }
  }
}

distri Framework Integration

These servers are specifically designed to work with the distri framework. The distri framework provides a distributed computing platform where these MCP servers can be used as tools for various tasks.

Using with distri

  1. Install distri framework:

    # Follow installation instructions from distri repository
    git clone https://github.com/distrihub/distri
  2. Configure MCP servers in distri:

    # distri-config.yaml
    mcp_servers:
      - name: coder
        command: mcp-coder
        args: ["--directory", "{{workspace}}"]
      - name: twitter
        command: mcp-twitter
        env:
          TWITTER_BEARER_TOKEN: "{{secrets.twitter_bearer}}"
      - name: spider
        command: mcp-crawl
        args: ["--stealth-mode"]
      - name: tavily
        command: mcp-tavily
        env:
          TAVILY_API_KEY: "{{secrets.tavily_key}}"
      - name: reddit
        command: mcp-reddit
        env:
          REDDIT_CLIENT_ID: "{{secrets.reddit_client_id}}"
          REDDIT_CLIENT_SECRET: "{{secrets.reddit_client_secret}}"
          REDDIT_USER_AGENT: "MCP-Reddit-Server/1.0"
      - name: kg
        command: mcp-kg
        args: ["--data-path", "{{workspace}}/knowledge_graph"]

Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Add tests if applicable
  5. Run cargo test and cargo clippy
  6. Submit a pull request

MCP Debugging

All servers support the MCP debugging tools recommended by the Model Context Protocol documentation.

Using MCP Inspector

# Install MCP Inspector (if not already installed)
npm install -g @modelcontextprotocol/inspector

# Debug any server
npx @modelcontextprotocol/inspector ./target/release/mcp-coder
npx @modelcontextprotocol/inspector ./target/release/mcp-twitter
npx @modelcontextprotocol/inspector ./target/release/mcp-crawl
npx @modelcontextprotocol/inspector ./target/release/mcp-tavily
npx @modelcontextprotocol/inspector ./target/release/mcp-reddit

Manual Testing with stdio

You can manually test the servers by sending JSON-RPC messages:

# Start server in debug mode
./target/release/mcp-coder --debug

# Send initialization message
echo '{"jsonrpc": "2.0", "id": 1, "method": "initialize", "params": {"protocolVersion": "2024-11-05", "capabilities": {}, "clientInfo": {"name": "test", "version": "1.0"}}}' | ./target/release/mcp-coder

# List available tools
echo '{"jsonrpc": "2.0", "id": 2, "method": "tools/list", "params": {}}' | ./target/release/mcp-coder

License

This project is licensed under the MIT License - see the LICENSE file for details.

Related Projects

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •  

Languages