Skip to content

Commit 2391f30

Browse files
authored
Merge branch 'main' into add-meeting-info
2 parents 34fa5c5 + e824c7c commit 2391f30

File tree

7 files changed

+41
-21
lines changed

7 files changed

+41
-21
lines changed

docs/clients.mdx

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,7 @@ This page provides an overview of applications that support the Model Context Pr
6262
| [Lutra][Lutra] ||||||||
6363
| [mcp-agent][mcp-agent] ||||| ⚠️ |||
6464
| [mcp-client-chatbot][mcp-client-chatbot] ||||||||
65+
| [MCPJam][MCPJam] ||||||||
6566
| [mcp-use][mcp-use] ||||||||
6667
| [modelcontextchat.com][modelcontextchat.com] ||||||||
6768
| [MCPHub][MCPHub] ||||||||
@@ -158,6 +159,7 @@ This page provides an overview of applications that support the Model Context Pr
158159
[Lutra]: https://lutra.ai
159160
[mcp-agent]: https://github.com/lastmile-ai/mcp-agent
160161
[mcp-client-chatbot]: https://github.com/cgoinglove/mcp-client-chatbot
162+
[MCPJam]: https://github.com/MCPJam/inspector
161163
[mcp-use]: https://github.com/pietrozullo/mcp-use
162164
[modelcontextchat.com]: https://modelcontextchat.com
163165
[MCPHub]: https://github.com/ravitemer/mcphub.nvim
@@ -782,6 +784,18 @@ Langflow is an open-source visual builder that lets developers rapidly prototype
782784
- All MCP tools are provided to the LLM by default, but the project also includes an optional `@toolname` mention feature to make tool invocation more explicit—particularly useful when connecting to multiple MCP servers with many tools.
783785
- Visual workflow builder that lets you create custom tools by chaining LLM nodes and MCP tools together. Published workflows become callable as `@workflow_name` tools in chat, enabling complex multi-step automation sequences.
784786

787+
### MCPJam
788+
789+
[MCPJam] is an open source testing and debugging tool for MCP servers - Postman for MCP servers.
790+
791+
**Key features:**
792+
793+
- Test your MCP server's tools, resources, prompts, and OAuth. MCP spec compliant.
794+
- LLM playground to test your server against different LLMs.
795+
- Tracing and logging error messages.
796+
- Connect and test multiple MCP servers simultaneously.
797+
- Supports all transports - STDIO, SSE, and Streamable HTTP.
798+
785799
### mcp-use
786800

787801
[mcp-use] is an open source python library to very easily connect any LLM to any MCP server both locally and remotely.

docs/docs.json

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -371,10 +371,6 @@
371371
"source": "/docs/concepts",
372372
"destination": "/docs/learn/architecture"
373373
},
374-
{
375-
"source": "/docs/tools",
376-
"destination": "/legacy/tools/inspector"
377-
},
378374
{
379375
"source": "/docs/tutorials/use-remote-mcp-server",
380376
"destination": "/docs/develop/connect-remote-servers"

docs/docs/develop/build-server.mdx

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1856,6 +1856,17 @@ tail -n 20 -f ~/Library/Logs/Claude/mcp*.log
18561856
2. Make sure the path to your project is absolute and not relative
18571857
3. Restart Claude for Desktop completely
18581858

1859+
<Warning>
1860+
1861+
To properly restart Claude for Desktop, you must fully quit the application:
1862+
1863+
- **Windows**: Right-click the Claude icon in the system tray (which may be hidden in the "hidden icons" menu) and select "Quit" or "Exit".
1864+
- **macOS**: Use Cmd+Q or select "Quit Claude" from the menu bar.
1865+
1866+
Simply closing the window does not fully quit the application, and your MCP server configuration changes will not take effect.
1867+
1868+
</Warning>
1869+
18591870
**Tool calls failing silently**
18601871

18611872
If Claude attempts to use the tools but they fail:

docs/docs/learn/architecture.mdx

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -55,13 +55,6 @@ graph TB
5555
Client1 ---|"One-to-one<br/>connection"| Server1
5656
Client2 ---|"One-to-one<br/>connection"| Server2
5757
Client3 ---|"One-to-one<br/>connection"| Server3
58-
59-
style Client1 fill:#e1f5fe
60-
style Client2 fill:#e1f5fe
61-
style Client3 fill:#e1f5fe
62-
style Server1 fill:#f3e5f5
63-
style Server2 fill:#f3e5f5
64-
style Server3 fill:#f3e5f5
6558
```
6659

6760
Note that **MCP server** refers to the program that serves context data, regardless of

docs/docs/learn/client-concepts.mdx

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ In addition to making use of context provided by servers, clients may provide se
1414
| Feature | Explanation | Example |
1515
| --------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- |
1616
| **Sampling** | Sampling allows servers to request LLM completions through the client, enabling an agentic workflow. This approach puts the client in complete control of user permissions and security measures. | A server for booking travel may send a list of flights to an LLM and request that the LLM pick the best flight for the user. |
17-
| **Roots** | Roots allow clients to specify which files servers can access, guiding them to relevant directories while maintaining security boundaries. | A server for booking travel may be given access to a specific directory, from which it can read a user's calendar. |
17+
| **Roots** | Roots allow clients to specify which directories servers should focus on, communicating intended scope through a coordination mechanism. | A server for booking travel may be given access to a specific directory, from which it can read a user's calendar. |
1818
| **Elicitation** | Elicitation enables servers to request specific information from users during interactions, providing a structured way for servers to gather information on demand. | A server booking travel may ask for the user's preferences on airplane seats, room type or their contact number to finalise a booking. |
1919

2020
### Elicitation
@@ -108,7 +108,7 @@ Roots define filesystem boundaries for server operations, allowing clients to sp
108108

109109
#### Overview
110110

111-
Roots are a mechanism for clients to communicate filesystem access boundaries to servers. They consist of file URIs that indicate directories where servers can operate, helping servers understand the scope of available files and folders. Rather than giving servers unrestricted filesystem access, roots guide them to relevant working directories while maintaining security boundaries.
111+
Roots are a mechanism for clients to communicate filesystem access boundaries to servers. They consist of file URIs that indicate directories where servers can operate, helping servers understand the scope of available files and folders. Rather than giving servers unrestricted filesystem access, roots guide them to relevant working directories. While roots communicate intended boundaries, actual security is always maintained by the client's access controls.
112112

113113
**Root structure:**
114114

@@ -121,8 +121,6 @@ Roots are a mechanism for clients to communicate filesystem access boundaries to
121121

122122
Roots are exclusively filesystem paths and always use the `file://` URI scheme. They help servers understand project boundaries, workspace organization, and accessible directories. The roots list can be updated dynamically as users work with different projects or folders, with servers receiving notifications through `roots/list_changed` when boundaries change.
123123

124-
It's important to note that while roots provide guidance to servers about where to operate, the client is always in full control of file access. Roots simply communicate intended boundaries—actual file access is always mediated by the client's security policies.
125-
126124
#### Example: Travel Planning Workspace
127125

128126
A travel agent working with multiple client trips benefits from roots to organize filesystem access. Consider a workspace with different directories for various aspects of travel planning.
@@ -133,15 +131,23 @@ The client provides filesystem roots to the travel planning server:
133131
- `file:///Users/agent/travel-templates` - Reusable itinerary templates and resources
134132
- `file:///Users/agent/client-documents` - Client passports and travel documents
135133

136-
When the agent creates a Barcelona itinerary, the server works within these boundaries—accessing templates, saving the new itinerary, and referencing client documents. It cannot access files outside these roots. Servers typically access files within roots by using relative paths from the root directories or by utilizing file search tools that respect the root boundaries.
134+
When the agent creates a Barcelona itinerary, well-behaved servers respect these boundaries—accessing templates, saving the new itinerary, and referencing client documents within the specified roots. Servers typically access files within roots by using relative paths from the root directories or by utilizing file search tools that respect the root boundaries.
137135

138136
If the agent opens an archive folder like `file:///Users/agent/archive/2023-trips`, the client updates the roots list via `roots/list_changed`.
139137

138+
For a complete implementation of a server that respects roots, see the [filesystem server](https://github.com/modelcontextprotocol/servers/tree/main/src/filesystem) in the official servers repository.
139+
140+
#### Design Philosophy
141+
142+
Roots serve as a coordination mechanism between clients and servers, not a security boundary. The specification requires that servers "SHOULD respect root boundaries," and not that they "MUST enforce" them, because servers run code the client cannot control. This design is pragmatic: clients enforce security while roots communicate intent.
143+
144+
Roots work best when servers are trusted or vetted, users understand their advisory nature, and the goal is preventing accidents rather than stopping malicious behavior. They excel at context scoping (telling servers where to focus), accident prevention (helping well-behaved servers stay in bounds), and workflow organization (such as managing project boundaries automatically).
145+
140146
#### User Interaction Model
141147

142148
Roots are typically managed automatically by host applications based on user actions, though some applications may expose manual root management:
143149

144-
**Automatic root detection**: When users open folders, clients automatically expose them as roots. Opening a travel workspace gives servers access to itineraries and documents within that directory.
150+
**Automatic root detection**: When users open folders, clients automatically expose them as roots. Opening a travel workspace allows the client to expose that directory as a root, helping servers understand which itineraries and documents are in scope for the current work.
145151

146152
**Manual root configuration**: Advanced users can specify roots through configuration. For example, adding `/travel-templates` for reusable resources while excluding directories with financial records.
147153

docs/style.css

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -578,7 +578,7 @@ body:has(#schema-reference) {
578578
border-radius: 9999px;
579579

580580
border: 6px solid var(--highlight-color);
581-
color: white
581+
color: white;
582582

583583
font-size: 1.5rem;
584584
font-weight: 700;

package-lock.json

Lines changed: 3 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)