shuiyuan-mcp-lite
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| SHUIYUAN_BASE_URL | No | HTTP(S) address of the Shuiyuan deployment, without username, password, query parameters, or fragment. | https://shuiyuan.sjtu.edu.cn |
| SHUIYUAN_USER_API_KEY | No | User's own Discourse User API Key; leave empty for anonymous access. | |
| SHUIYUAN_USER_API_CLIENT_ID | No | Optional client ID; sent only when a User API Key is configured. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| searchB | Search topics/posts. Dates: YYYY-MM-DD; category: ID or slug (parent/child). keyword accepts Discourse search syntax. page is 1-based; offset is within that upstream page. Consume next_offset before next_page (reset offset to 0). max_chars limits each excerpt. Search availability depends on site permissions. |
| read_topicA | Read a topic and replies. offset is a 0-based index in the visible post stream. max_chars limits each post. Use read_post to read the remainder of truncated posts. Returns Markdown when available, otherwise plain text extracted from API HTML. |
| read_postA | Read raw Markdown, retorts and polls for a post ID (not a topic/post number). offset/next_offset are character positions in raw text. Missing plugins return []. Hidden poll vote counts return null. Plugin metadata has fixed size caps. |
| get_userB | Get allowlisted public profile fields; max_chars limits the biography. |
| list_user_postsA | List recent topics/replies by a user; offset counts activities from 0. max_chars limits each excerpt. A full page offers next_offset; the next page may be empty. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| categories | Visible categories from /site.json (up to 500, with truncation metadata). |
| tags | Visible tags from /tags.json (up to 1000, with truncation metadata). |
TDQS
Scored across 5 tools
Each tool maps to a distinct resource or action: search for content discovery, read_topic for whole threads, read_post for individual raw posts, get_user for profiles, and list_user_posts for user activity. The descriptions explicitly clarify the boundaries between read_topic and read_post as well as search and list_user_posts, so an agent can select confidently.
All tool names use snake_case and are immediately readable, but the pattern is not perfectly uniform: search is a bare verb while the others are verb_noun, and the verbs vary (read, get, list). This is a minor deviation that does not cause confusion.
Five tools is well-scoped for a lite read-only forum client. Each tool covers a distinct need—search, topic reading, post reading, user profile, and user activity—without redundancy or obvious padding.
The surface covers the core read-only lifecycle: search, view topics, view individual posts, view user profiles, and list user activity. Minor gaps exist, such as no direct category/tag listing or site metadata endpoint, but agents can work around these via search.