What an MCP server provides
What you will learn The three kinds of thing an MCP server exposes and what each is for. And why writing good tool descriptions matters more than you would think.
The three
| Kind | What it is | Character |
|---|---|---|
| Tools | actions the agent calls | active |
| Resources | material the agent reads | passive |
| Prompts | pre-prepared instruction templates | a person picks |
In practice most of it is tools. The other two are conveniences.
1. Tools — the one you use most
Actions the agent can invoke. Each tool looks like this:
The description matters more than you think
The model reads this description to decide when to use it. A poor description means it gets used when it should not, or not used when it should.
Tool descriptions are documentation written for the model, not for people. But the technique is the same as writing for people — what it does, when to use it, what to be careful about.
Names matter too
Several similar names and the model gets confused.
2. Resources — material to read
If a tool "does something," a resource says "here is some material."
The difference from tools is who initiates.
| Tool | Resource | |
|---|---|---|
| Who starts | the model decides and calls | a person selects it in, or the model reads it |
| Character | action | material |
| Example | "look up the stock" | "here is the handbook" |
In practice, putting frequently referenced documents in as resources is convenient. You do not have to paste them every time.
3. Prompts — prepared instruction templates
Frequently used instructions, prepared and offered by the server.
A person picks it from a list. Think of it as a device that saves you rewriting the four parts of a good instruction every time.
The three working together
graph TD
P["Prompt: 'PR review'<br/>selected by a person"] --> M["Model"]
R["Resource: code conventions<br/>provided as reference"] --> M
M -->|"calls when needed"| T1["Tool: fetch the changes"]
M -->|"calls when needed"| T2["Tool: run the tests"]
T1 --> M
T2 --> M
M --> O["Review result"]In Connect
Attach an MCP server in HyperTeams Connect and its
tools appear in the agent list as APP. You can decide per workspace which
tools are on.
The reverse direction works too — Connect itself becomes an MCP server, so an external client (Claude Code and the like) can use this workspace as a tool.
Common misconceptions
"Should I use a resource or a tool?"
Action means tool, material means resource. If unsure, ask: "does this change or execute something?" If yes, it is a tool.
In practice most things get built as tools. Even material works well as a tool
like get_document(name), so the model fetches it when it needs it.
"Can I write the tool description roughly?"
The most common mistake. Most cases of a model picking the wrong tool come from a poor description. A meaningful share of the time spent building a tool should go into writing its description.
Check yourself
1. Why does a tool description matter?
Answer
Because the model reads it to decide when to use the tool. A poor description means it gets used when it should not and skipped when it should be used. Most wrong-tool selections trace back to poor descriptions.
2. How do you distinguish a tool from a resource?
Answer
Action means tool, material means resource. Ask "does this change or execute something?" In practice material is often built as a lookup tool anyway.
3. What do prompts (templates) save you?
Answer
Rewriting the same instruction every time. Frequently used instructions are prepared in advance and a person picks one from a list.
More tools brings a new problem → When you have too many tools