Skip to content

Commit 459b6b5

Browse files
Merge pull request modelcontextprotocol#2193 from jonathanhefner/clients-page-colorize-features
Display MCP features as color-coded badges on clients page
2 parents f12663b + 19c3f8c commit 459b6b5

1 file changed

Lines changed: 55 additions & 13 deletions

File tree

docs/clients.mdx

Lines changed: 55 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,25 @@ description: "A list of applications that support MCP integrations"
55

66
{/* prettier-ignore-start */}
77

8-
export const FEATURES = ["Resources", "Prompts", "Tools", "Discovery", "Sampling", "Roots", "Elicitation", "Instructions", "Tasks", "Apps"];
8+
export const FEATURES = ["Resources", "Prompts", "Tools", "Discovery", "Instructions", "Sampling", "Roots", "Elicitation", "Tasks", "Apps"];
9+
10+
export const FEATURE_COLORS = {
11+
Resources: "blue",
12+
Prompts: "blue",
13+
Tools: "blue",
14+
Instructions: "purple",
15+
Discovery: "purple",
16+
Sampling: "green",
17+
Roots: "green",
18+
Elicitation: "green",
19+
Tasks: "orange",
20+
Apps: "orange",
21+
};
22+
23+
export const FeatureBadge = ({ feature }) => {
24+
const color = FEATURE_COLORS[feature.split(" (")[0]] || "gray";
25+
return <Badge shape="pill" stroke color={color}>{feature}</Badge>;
26+
};
927

1028
export const filterStore = {
1129
state: {
@@ -143,6 +161,12 @@ export const McpClient = ({ name, homepage, supports, sourceCode, instructions,
143161
sourceCode ??= homepage;
144162
}
145163

164+
const features = (supports ?? "").split(", ").sort((a, b) => {
165+
const featureA = a.split(" (")[0];
166+
const featureB = b.split(" (")[0];
167+
return FEATURES.indexOf(featureA) - FEATURES.indexOf(featureB);
168+
});
169+
146170
const instructionsLinks = Array.isArray(instructions)
147171
? <>
148172
<strong>Configuration instructions:</strong>{" "}
@@ -190,18 +214,23 @@ export const McpClient = ({ name, homepage, supports, sourceCode, instructions,
190214
#
191215
</a>
192216
</div>
193-
{supports && (
194-
<div className="flex items-start gap-1.5 mt-2 text-base">
195-
<span className="flex items-center h-[1lh]">
196-
<Icon icon="check" iconType="solid" size={18} />
217+
{features.length > 0 && (
218+
<div className="flex items-baseline gap-1.5 mt-2 text-base">
219+
<span className="inline-flex items-center h-[1lh]">
220+
{'\u200B'}<Icon icon="check" iconType="solid" size={18} />
221+
</span>
222+
<strong>Supports:</strong>
223+
<span className="flex flex-wrap gap-1">
224+
{features.map(feature => (
225+
<FeatureBadge key={feature} feature={feature} />
226+
))}
197227
</span>
198-
<span><strong>Supports:</strong> {supports}</span>
199228
</div>
200229
)}
201230
{sourceCode && (
202-
<div className="flex items-start gap-1.5 mt-2 text-base">
203-
<span className="flex items-center h-[1lh]">
204-
<Icon icon="code" iconType="solid" size={18} />
231+
<div className="flex items-baseline gap-1.5 mt-2 text-base">
232+
<span className="inline-flex items-center h-[1lh]">
233+
{'\u200B'}<Icon icon="code" iconType="solid" size={18} />
205234
</span>
206235
<span>
207236
<a href={sourceCode} target="_blank" rel="noopener noreferrer">
@@ -211,9 +240,9 @@ export const McpClient = ({ name, homepage, supports, sourceCode, instructions,
211240
</div>
212241
)}
213242
{instructions && (
214-
<div className="flex items-start gap-1.5 mt-2 text-base">
215-
<span className="flex items-center h-[1lh]">
216-
<Icon icon="gear" iconType="solid" size={18} />
243+
<div className="flex items-baseline gap-1.5 mt-2 text-base">
244+
<span className="inline-flex items-center h-[1lh]">
245+
{'\u200B'}<Icon icon="gear" iconType="solid" size={18} />
217246
</span>
218247
<span>
219248
{instructionsLinks}
@@ -248,7 +277,20 @@ export const McpClient = ({ name, homepage, supports, sourceCode, instructions,
248277

249278
{/* prettier-ignore-end */}
250279

251-
This page provides an overview of applications that support the Model Context Protocol (MCP). Each client may support different MCP features, allowing for varying levels of integration with MCP servers.
280+
This page showcases applications that support the Model Context Protocol (MCP). Each client may support different MCP features:
281+
282+
| Feature | Description |
283+
| --------------------------------------- | --------------------------------------------------------- |
284+
| <FeatureBadge feature="Resources" /> | Server-exposed data and content |
285+
| <FeatureBadge feature="Prompts" /> | Pre-defined templates for LLM interactions |
286+
| <FeatureBadge feature="Tools" /> | Executable functions that LLMs can invoke |
287+
| <FeatureBadge feature="Discovery" /> | Support for tools/prompts/resources changed notifications |
288+
| <FeatureBadge feature="Instructions" /> | Server-provided guidance for LLMs |
289+
| <FeatureBadge feature="Sampling" /> | Server-initiated LLM completions |
290+
| <FeatureBadge feature="Roots" /> | Filesystem boundary definitions |
291+
| <FeatureBadge feature="Elicitation" /> | User information requests |
292+
| <FeatureBadge feature="Tasks" /> | Long-running operation tracking |
293+
| <FeatureBadge feature="Apps" /> | Interactive HTML interfaces |
252294

253295
<Note>
254296

0 commit comments

Comments
 (0)