Fix READMEs of examples

This commit is contained in:
David Soria Parra
2024-12-03 22:35:52 +00:00
parent 15ed7cb2dc
commit 44ec763f92
8 changed files with 80 additions and 61 deletions

View File

@@ -8,10 +8,10 @@ Start the server using either stdio (default) or SSE transport:
```bash ```bash
# Using stdio transport (default) # Using stdio transport (default)
mcp-simple-prompt uv mcp-simple-prompt
# Using SSE transport on custom port # Using SSE transport on custom port
mcp-simple-prompt --transport sse --port 8000 uv run mcp-simple-prompt --transport sse --port 8000
``` ```
The server exposes a prompt named "simple" that accepts two optional arguments: The server exposes a prompt named "simple" that accepts two optional arguments:
@@ -21,22 +21,35 @@ The server exposes a prompt named "simple" that accepts two optional arguments:
## Example ## Example
Using the MCP client, you can retrieve the prompt like this: Using the MCP client, you can retrieve the prompt like this using the STDIO transport:
```python ```python
from mcp.client import ClientSession import asyncio
from mcp.client.session import ClientSession
from mcp.client.stdio import StdioServerParameters, stdio_client
async with ClientSession() as session:
await session.initialize()
# List available prompts async def main():
prompts = await session.list_prompts() async with stdio_client(
print(prompts) StdioServerParameters(command="uv", args=["run", "mcp-simple-prompt"])
) as (read, write):
async with ClientSession(read, write) as session:
await session.initialize()
# Get the prompt with arguments # List available prompts
prompt = await session.get_prompt("simple", { prompts = await session.list_prompts()
"context": "User is a software developer", print(prompts)
"topic": "Python async programming"
}) # Get the prompt with arguments
print(prompt) prompt = await session.get_prompt(
"simple",
{
"context": "User is a software developer",
"topic": "Python async programming",
},
)
print(prompt)
asyncio.run(main())
``` ```

View File

@@ -1,5 +1,5 @@
import sys import sys
from server import main from .server import main
sys.exit(main()) sys.exit(main())

View File

@@ -37,11 +37,7 @@ def create_messages(
return messages return messages
@click.group() @click.command()
def cli():
pass
@click.option("--port", default=8000, help="Port to listen on for SSE") @click.option("--port", default=8000, help="Port to listen on for SSE")
@click.option( @click.option(
"--transport", "--transport",

View File

@@ -8,29 +8,41 @@ Start the server using either stdio (default) or SSE transport:
```bash ```bash
# Using stdio transport (default) # Using stdio transport (default)
mcp-simple-resource uv run mcp-simple-resource
# Using SSE transport on custom port # Using SSE transport on custom port
mcp-simple-resource --transport sse --port 8000 uv run mcp-simple-resource --transport sse --port 8000
``` ```
The server exposes some basic text file resources that can be read by clients. The server exposes some basic text file resources that can be read by clients.
## Example ## Example
Using the MCP client, you can read the resources like this: Using the MCP client, you can retrieve resources like this using the STDIO transport:
```python ```python
from mcp.client import ClientSession import asyncio
from mcp.types import AnyUrl
from mcp.client.session import ClientSession
from mcp.client.stdio import StdioServerParameters, stdio_client
async with ClientSession() as session:
await session.initialize()
# List available resources async def main():
resources = await session.list_resources() async with stdio_client(
print(resources) StdioServerParameters(command="uv", args=["run", "mcp-simple-resource"])
) as (read, write):
async with ClientSession(read, write) as session:
await session.initialize()
# List available resources
resources = await session.list_resources()
print(resources)
# Get a specific resource
resource = await session.read_resource(AnyUrl("file:///greeting.txt"))
print(resource)
asyncio.run(main())
# Read a specific resource
resource = await session.read_resource(resources[0].uri)
print(resource)
``` ```

View File

@@ -10,12 +10,7 @@ SAMPLE_RESOURCES = {
} }
@click.group() @click.command()
def cli():
pass
@cli.command()
@click.option("--port", default=8000, help="Port to listen on for SSE") @click.option("--port", default=8000, help="Port to listen on for SSE")
@click.option( @click.option(
"--transport", "--transport",

View File

@@ -1,4 +1,3 @@
# MCP Simple Tool
A simple MCP server that exposes a website fetching tool. A simple MCP server that exposes a website fetching tool.
@@ -8,10 +7,10 @@ Start the server using either stdio (default) or SSE transport:
```bash ```bash
# Using stdio transport (default) # Using stdio transport (default)
mcp-simple-tool uv run mcp-simple-tool
# Using SSE transport on custom port # Using SSE transport on custom port
mcp-simple-tool --transport sse --port 8000 uv run mcp-simple-tool --transport sse --port 8000
``` ```
The server exposes a tool named "fetch" that accepts one required argument: The server exposes a tool named "fetch" that accepts one required argument:
@@ -20,21 +19,30 @@ The server exposes a tool named "fetch" that accepts one required argument:
## Example ## Example
Using the MCP client, you can use the tool like this: Using the MCP client, you can use the tool like this using the STDIO transport:
```python ```python
from mcp.client import ClientSession import asyncio
from mcp.client.session import ClientSession
from mcp.client.stdio import StdioServerParameters, stdio_client
async with ClientSession() as session:
await session.initialize()
# List available tools async def main():
tools = await session.list_tools() async with stdio_client(
print(tools) StdioServerParameters(command="uv", args=["run", "mcp-simple-tool"])
) as (read, write):
async with ClientSession(read, write) as session:
await session.initialize()
# List available tools
tools = await session.list_tools()
print(tools)
# Call the fetch tool
result = await session.call_tool("fetch", {"url": "https://example.com"})
print(result)
asyncio.run(main())
# Call the fetch tool
result = await session.call_tool("fetch", {
"url": "https://example.com"
})
print(result)
``` ```

View File

@@ -17,12 +17,7 @@ async def fetch_website(
return [types.TextContent(type="text", text=response.text)] return [types.TextContent(type="text", text=response.text)]
@click.group() @click.command()
def cli():
pass
@cli.command()
@click.option("--port", default=8000, help="Port to listen on for SSE") @click.option("--port", default=8000, help="Port to listen on for SSE")
@click.option( @click.option(
"--transport", "--transport",

2
uv.lock generated
View File

@@ -171,7 +171,7 @@ wheels = [
[[package]] [[package]]
name = "mcp" name = "mcp"
version = "1.0.0.dev0" version = "1.1.1.dev0"
source = { editable = "." } source = { editable = "." }
dependencies = [ dependencies = [
{ name = "anyio" }, { name = "anyio" },