Skip to content

Commit

Permalink
README Cleanup (#30)
Browse files Browse the repository at this point in the history
  • Loading branch information
maheshmurag authored Nov 24, 2024
1 parent ec3c60c commit a1120c3
Show file tree
Hide file tree
Showing 14 changed files with 254 additions and 54 deletions.
27 changes: 24 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@

A collection of reference implementations and community-contributed servers for the [Model Context Protocol](https://modelcontextprotocol.io/) (MCP). This repository showcases the versatility and extensibility of MCP, demonstrating how it can be used to give Large Language Models (LLMs) secure, controlled access to tools and data sources.

Each MCP server is implemented with either the [Typescript MCP SDK](https://github.com/modelcontextprotocol/typescript-sdk) or [Python MCP SDK](https://github.com/modelcontextprotocol/python-sdk).

## 🌟 Featured Servers

- **[Filesystem](src/filesystem)** - Secure file operations with configurable access controls
Expand All @@ -16,13 +18,28 @@ A collection of reference implementations and community-contributed servers for

## 🚀 Getting Started

The servers in this repository can be used directly with `npx`. For example:
### Using MCP Servers in this Repository
Typescript-based servers in this repository can be used directly with `npx`.

For example, this will start the [Memory](src/memory) server:
```sh
npx -y @modelcontextprotocol/server-memory
```

This will start the [Memory](src/memory) server. However, this isn't very useful on its own, and should instead be configured into an MCP client. For example, here's the Claude Desktop configuration to use the above server:
Python-based servers in this repository can be used directly with [`uvx`](https://docs.astral.sh/uv/concepts/tools/) or [`pip`](https://pypi.org/project/pip/). `uvx` is recommended for ease of use and setup.

For example, this will start the [Git](src/git) server:
```sh
# With uvx
uvx mcp-server-git

# With pip
pip install mcp-server-git
python -m mcp_server_git
```

### Using an MCP Client
However, running a server on its own isn't very useful, and should instead be configured into an MCP client. For example, here's the Claude Desktop configuration to use the above server:

```json
{
Expand All @@ -35,7 +52,7 @@ This will start the [Memory](src/memory) server. However, this isn't very useful
}
```

Additional examples might look like:
Additional examples of using the Claude Desktop as an MCP client might look like:

```json
{
Expand All @@ -44,6 +61,10 @@ Additional examples might look like:
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/path/to/allowed/files"]
},
"git": {
"command": "uvx",
"args": ["mcp-server-git", "--repository", "path/to/git/repo"]
},
"github": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-github"],
Expand Down
24 changes: 12 additions & 12 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 4 additions & 0 deletions src/brave-search/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -47,3 +47,7 @@ Add this to your `claude_desktop_config.json`:
}
}
```

## License

This MCP server is licensed under the MIT License. This means you are free to use, modify, and distribute the software, subject to the terms and conditions of the MIT License. For more details, please see the LICENSE file in the project repository.
86 changes: 84 additions & 2 deletions src/everything/README.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,85 @@
# Everything server
# Everything MCP Server

This MCP server attempts to exercise all the features of the MCP protocol. It is not intended to be a useful server, but rather a test server for builders of MCP clients.
This MCP server attempts to exercise all the features of the MCP protocol. It is not intended to be a useful server, but rather a test server for builders of MCP clients. It implements prompts, tools, resources, sampling, and more to showcase MCP capabilities.

## Components

### Tools

1. `echo`
- Simple tool to echo back input messages
- Input:
- `message` (string): Message to echo back
- Returns: Text content with echoed message

2. `add`
- Adds two numbers together
- Inputs:
- `a` (number): First number
- `b` (number): Second number
- Returns: Text result of the addition

3. `longRunningOperation`
- Demonstrates progress notifications for long operations
- Inputs:
- `duration` (number, default: 10): Duration in seconds
- `steps` (number, default: 5): Number of progress steps
- Returns: Completion message with duration and steps
- Sends progress notifications during execution

4. `sampleLLM`
- Demonstrates LLM sampling capability using MCP sampling feature
- Inputs:
- `prompt` (string): The prompt to send to the LLM
- `maxTokens` (number, default: 100): Maximum tokens to generate
- Returns: Generated LLM response

5. `getTinyImage`
- Returns a small test image
- No inputs required
- Returns: Base64 encoded PNG image data

### Resources

The server provides 100 test resources in two formats:
- Even numbered resources:
- Plaintext format
- URI pattern: `test://static/resource/{even_number}`
- Content: Simple text description

- Odd numbered resources:
- Binary blob format
- URI pattern: `test://static/resource/{odd_number}`
- Content: Base64 encoded binary data

Resource features:
- Supports pagination (10 items per page)
- Allows subscribing to resource updates
- Demonstrates resource templates
- Auto-updates subscribed resources every 5 seconds

### Prompts

1. `simple_prompt`
- Basic prompt without arguments
- Returns: Single message exchange

2. `complex_prompt`
- Advanced prompt demonstrating argument handling
- Required arguments:
- `temperature` (number): Temperature setting
- Optional arguments:
- `style` (string): Output style preference
- Returns: Multi-turn conversation with images

## Usage with Claude Desktop

Add to your `claude_desktop_config.json`:

```json
{
"everything": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-everything"]
}
}
5 changes: 5 additions & 0 deletions src/filesystem/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -87,3 +87,8 @@ Add this to your `claude_desktop_config.json`:
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/Users/username/Desktop", "/path/to/other/allowed/dir"]
}
}
```

## License

This MCP server is licensed under the MIT License. This means you are free to use, modify, and distribute the software, subject to the terms and conditions of the MIT License. For more details, please see the LICENSE file in the project repository.
4 changes: 4 additions & 0 deletions src/gdrive/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -57,3 +57,7 @@ To integrate this server with the desktop app, add the following to your app's s
}
}
```

## License

This MCP server is licensed under the MIT License. This means you are free to use, modify, and distribute the software, subject to the terms and conditions of the MIT License. For more details, please see the LICENSE file in the project repository.
75 changes: 50 additions & 25 deletions src/git/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,19 +6,53 @@ A Model Context Protocol server for Git repository interaction and automation. T

Please note that mcp-server-git is currently in early development. The functionality and available tools are subject to change and expansion as we continue to develop and improve the server.

## Available Tools
### Tools

1. `git_status`
- Shows the working tree status
- Input:
- `repo_path` (string): Path to Git repository
- Returns: Current status of working directory as text output

2. `git_diff_unstaged`
- Shows changes in working directory not yet staged
- Input:
- `repo_path` (string): Path to Git repository
- Returns: Diff output of unstaged changes

3. `git_diff_staged`
- Shows changes that are staged for commit
- Input:
- `repo_path` (string): Path to Git repository
- Returns: Diff output of staged changes

4. `git_commit`
- Records changes to the repository
- Inputs:
- `repo_path` (string): Path to Git repository
- `message` (string): Commit message
- Returns: Confirmation with new commit hash

5. `git_add`
- Adds file contents to the staging area
- Inputs:
- `repo_path` (string): Path to Git repository
- `files` (string[]): Array of file paths to stage
- Returns: Confirmation of staged files

6. `git_reset`
- Unstages all staged changes
- Input:
- `repo_path` (string): Path to Git repository
- Returns: Confirmation of reset operation

7. `git_log`
- Shows the commit logs
- Inputs:
- `repo_path` (string): Path to Git repository
- `max_count` (number, optional): Maximum number of commits to show (default: 10)
- Returns: Array of commit entries with hash, author, date, and message

The current list of tools includes:

- `git_status`: Shows the working tree status
- `git_diff_unstaged`: Shows changes in the working directory that are not yet staged
- `git_diff_staged`: Shows changes that are staged for commit
- `git_commit`: Records changes to the repository
- `git_add`: Adds file contents to the staging area
- `git_reset`: Unstages all staged changes
- `git_log`: Shows the commit logs

This list is expected to grow as we add more functionality to the server. We welcome contributions from the community to expand and enhance the available tools.

## Installation

Expand All @@ -43,9 +77,9 @@ python -m mcp_server_git

## Configuration

### Configure for Claude.app
### Usage with Claude Desktop

Add to your Claude settings:
Add this to your `claude_desktop_config.json`:

<details>
<summary>Using uvx</summary>
Expand Down Expand Up @@ -73,7 +107,7 @@ Add to your Claude settings:
```
</details>

### Configure for Zed
### Usage with [Zed](https://github.com/zed-industries/zed)

Add to your Zed settings.json:

Expand Down Expand Up @@ -118,15 +152,6 @@ cd path/to/servers/src/git
npx @modelcontextprotocol/inspector uv run mcp-server-git
```

## Contributing

We encourage contributions to help expand and improve mcp-server-git. Whether you want to add new tools, enhance existing functionality, or improve documentation, your input is valuable.

For examples of other MCP servers and implementation patterns, see:
https://github.com/modelcontextprotocol/servers

Pull requests are welcome! Feel free to contribute new ideas, bug fixes, or enhancements to make mcp-server-git even more powerful and useful.

## License

mcp-server-git is licensed under the MIT License. This means you are free to use, modify, and distribute the software, subject to the terms and conditions of the MIT License. For more details, please see the LICENSE file in the project repository.
This MCP server is licensed under the MIT License. This means you are free to use, modify, and distribute the software, subject to the terms and conditions of the MIT License. For more details, please see the LICENSE file in the project repository.
4 changes: 4 additions & 0 deletions src/github/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -126,3 +126,7 @@ To use this with Claude Desktop, add the following to your `claude_desktop_confi
}
}
```

## License

This MCP server is licensed under the MIT License. This means you are free to use, modify, and distribute the software, subject to the terms and conditions of the MIT License. For more details, please see the LICENSE file in the project repository.
Loading

0 comments on commit a1120c3

Please sign in to comment.