huggingface / huggingface/mcp-course

Confusing JSON Structure and Role Terminology in Unit 1 ("MCP Clients")

Open
#45 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
MDX
Stars
918
Forks
255
PR merge metrics
No merged PRs in 30d

Description

**Page:** [https://huggingface.co/learn/mcp-course/unit1/mcp-clients](https://huggingface.co/learn/mcp-course/unit1/mcp-clients)

---

### 📌 Context

I was going through this section and noticed a few things that may benefit from clarification. Hope this is helpful!

---

### 🔹 1. `mcp.json` structure — clarification needed

The page presents the following JSON structure:

```json
{
"servers": [
{
"name": "GitHub API",
"transport": {
"type": "stdio",
"command": "python",
"args": ["github_server.py"],
"env": {
"GITHUB_TOKEN": "your_github_token"
}
}
}
]
}
```

However, I’ve seen most MCP-compatible projects (like `Cursor`, `TRAE`, `Windsurf`, etc.) use a different structure — something like:

```json
{
"mcpServers": {
"github": {
"command": "python",
"args": ["github_server.py"],
"env": {
"GITHUB_TOKEN": "your_github_token"
}
}
}
}
```

Could you clarify the intent behind the structure you’ve used?

---

### 🔹 2. Hosts vs Clients — possible role confusion

The section refers to Claude Desktop, Cursor, and Continue.dev as “MCP Clients,” but from what I understand, those are better described as **MCP Hosts** — applications that embed an MCP client for connecting to MCP Servers.

It might help learners if this distinction were made clearer:

* **Host** = the main user-facing app (IDE, assistant, etc.)
* **Client** = the internal component that handles MCP communications

Contributor guide

No contributing guide indexed for this repository

Research direction

Start with the Unit 1 “MCP Clients” page at the linked URL and review its mcp.json example and terminology for Claude Desktop, Cursor, and Continue.dev. Confirm the intended configuration structure, then clarify the Host-versus-Client distinction and update the page so the examples and definitions are consistent.

Written by the indexing model from the issue text.

Assessment

Domain
documentation
Issue type
Documentation
Difficulty
2/5
Estimated time
1-3 hours
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.