Skip to content

Commit 76fd80a

Browse files
committed
Merge branch 'main' of github.com:modelcontextprotocol/docs into zack-lee/thumbs-up-feedback-and-contributing
2 parents 623cfaf + 225500b commit 76fd80a

File tree

4 files changed

+40
-24
lines changed

4 files changed

+40
-24
lines changed

clients.mdx

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,12 @@ This page provides an overview of applications that support the Model Context Pr
1212
| [Claude Desktop App][Claude] |||||| Full support for all MCP features |
1313
| [Zed][Zed] |||||| Prompts appear as slash commands |
1414
| [Sourcegraph Cody][Cody] |||||| Supports resources through OpenCTX |
15+
| [Firebase Genkit][Genkit] | ⚠️ ||||| Supports resource list and lookup through tools. |
1516

1617
[Claude]: https://claude.ai/download
1718
[Zed]: https://zed.dev
1819
[Cody]: https://sourcegraph.com/cody
20+
[Genkit]: https://github.com/firebase/genkit
1921

2022
[Resources]: https://modelcontextprotocol.io/docs/concepts/resources
2123
[Prompts]: https://modelcontextprotocol.io/docs/concepts/prompts
@@ -53,6 +55,15 @@ The Claude desktop application provides comprehensive support for MCP, enabling
5355
- Uses OpenCTX as an abstraction layer
5456
- Future support planned for additional MCP features
5557

58+
### Firebase Genkit
59+
[Genkit](https://github.com/firebase/genkit) is Firebase's SDK for building and integrating GenAI features into applications. The [genkitx-mcp](https://github.com/firebase/genkit/tree/main/js/plugins/mcp) plugin enables consuming MCP servers as a client or creating MCP servers from Genkit tools and prompts.
60+
61+
**Key features:**
62+
- Client support for tools and prompts (resources partially supported)
63+
- Rich discovery with support in Genkit's Dev UI playground
64+
- Seamless interoperability with Genkit's existing tools and prompts
65+
- Works across a wide variety of GenAI models from top providers
66+
5667
## Adding MCP support to your application
5768

5869
If you've added MCP support to your application, we encourage you to submit a pull request to add it to this list. MCP integration can provide your users with powerful contextual AI capabilities and make your application part of the growing MCP ecosystem.

docs/concepts/resources.mdx

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,12 @@ Resources are a core primitive in the Model Context Protocol (MCP) that allow se
77

88
<Note>
99
Resources are designed to be **application-controlled**, meaning that the client application can decide how and when they should be used.
10+
Different MCP clients may handle resources differently. For example:
11+
- Claude Desktop currently requires users to explicitly select resources before they can be used
12+
- Other clients might automatically select resources based on heuristics
13+
- Some implementations may even allow the AI model itself to determine which resources to use
1014

11-
For example, one application may require users to explicitly select resources, while another could automatically select them based on heuristics or even at the discretion of the AI model itself.
15+
Server authors should be prepared to handle any of these interaction patterns when implementing resource support. In order to expose data to models automatically, server authors should use a **model-controlled** primitive such as [Tools](./tools).
1216
</Note>
1317

1418
## Overview

docs/first-server/python.mdx

Lines changed: 11 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -477,7 +477,7 @@ Let's build your first MCP server in Python! We'll create a weather server that
477477

478478
## Available transports
479479

480-
While this guide uses stdio transport, MCP supports additonal transport options:
480+
While this guide uses stdio transport, MCP supports additional transport options:
481481

482482
### SSE (Server-Sent Events)
483483

@@ -638,18 +638,15 @@ uvicorn.run(app, host="0.0.0.0", port=8000)
638638

639639
<Step title="Add resource templates">
640640
```python
641-
@self.list_resources()
642-
async def list_resources(self) -> ListResourcesResult:
643-
return ListResourcesResult(
644-
resources=[...],
645-
resourceTemplates=[
646-
ResourceTemplate(
647-
uriTemplate="weather://{city}/current",
648-
name="Current weather for any city",
649-
mimeType="application/json"
650-
)
651-
]
652-
)
641+
@app.list_resource_templates()
642+
async def list_resource_templates() -> list[ResourceTemplate]:
643+
return [
644+
ResourceTemplate(
645+
uriTemplate="weather://{city}/current",
646+
name="Current weather for any city",
647+
mimeType="application/json"
648+
)
649+
]
653650
```
654651
</Step>
655652
</Steps>
@@ -751,7 +748,7 @@ uvicorn.run(app, host="0.0.0.0", port=8000)
751748
pass
752749

753750
def json(self):
754-
return nock_forecast_response
751+
return mock_forecast_response
755752

756753
class AsyncClient():
757754
def __aenter__(self):

docs/first-server/typescript.mdx

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,10 @@ This guide uses the OpenWeatherMap API. You'll need a free API key from [OpenWea
4141
```bash
4242
OPENWEATHER_API_KEY=your-api-key-here
4343
```
44+
Make sure to add your environment file to `.gitignore`
45+
```bash
46+
.env
47+
```
4448
</Step>
4549
</Steps>
4650

@@ -342,18 +346,18 @@ This guide uses the OpenWeatherMap API. You'll need a free API key from [OpenWea
342346
}
343347

344348
return {
345-
content: {
346-
mimeType: "application/json",
349+
content: [{
350+
type: "text",
347351
text: JSON.stringify(forecasts, null, 2)
348-
}
352+
}]
349353
};
350354
} catch (error) {
351355
if (axios.isAxiosError(error)) {
352356
return {
353-
content: {
354-
mimeType: "text/plain",
357+
content: [{
358+
type: "text",
355359
text: `Weather API error: ${error.response?.data.message ?? error.message}`
356-
},
360+
}],
357361
isError: true,
358362
}
359363
}
@@ -368,7 +372,6 @@ This guide uses the OpenWeatherMap API. You'll need a free API key from [OpenWea
368372
<Step title="Build and test">
369373
```bash
370374
npm run build
371-
npm link
372375
```
373376
</Step>
374377
</Steps>
@@ -383,7 +386,8 @@ This guide uses the OpenWeatherMap API. You'll need a free API key from [OpenWea
383386
{
384387
"mcpServers": {
385388
"weather": {
386-
"command": "weather-server",
389+
"command": "node",
390+
"args": ["/path/to/weather-server/build/index.js"],
387391
"env": {
388392
"OPENWEATHER_API_KEY": "your-api-key",
389393
}
@@ -561,7 +565,7 @@ npm run build
561565
Look for detailed error messages in the Claude Desktop logs:
562566
```bash
563567
# Monitor logs
564-
tail -n 20 -f ~/Library/Application\ Support/Claude/mcp*.log
568+
tail -n 20 -f ~/Library/Logs/Claude/mcp*.log
565569
```
566570

567571
### Type errors

0 commit comments

Comments
 (0)