crowdsmart-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| CROWDSMART_API_KEY | Yes | Your CrowdSmart API key. The server sends it only to the API URL, as a bearer token in the Authorization header. The key starts with crc_. | |
| CROWDSMART_API_URL | No | The CrowdSmart API. The server sends your key to this URL, so set it only to a deployment that you trust. | https://csgcip.onrender.com |
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
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_jamsA | List the active Jams you can see: those you created, those you take part in, and public ones. "relation" is "created", "contributing", "public" (you can join) or "invited_pending". Your own drafts are not listed until you launch them. Args: community_id: Only the Jams of this community, from list_my_communities. |
| get_jamA | Show a Jam: its description, status and prompts in order. Each prompt shows whether it asks for a probability, and the shortest reasoning it accepts. The Jam's creator also sees its invitees and the agents chosen for the draft ("agent_ids"). Args: jam_id: Jam ID, from list_jams or create_jam. |
| create_jamA | Create a draft Jam from a plan. Nothing is sent until you launch it with launch_jam. Participants respond to each prompt in order, then review each other's responses. A "prediction" prompt (the default) asks for a probability and reasoning. A "reasoning", "qualitative" or "evaluation" prompt asks for reasoning only. Seed reasons are example ideas that participants review from the start. The result has the draft's green_room_url, where you can review and edit it in the app. A Jam can have Knowledge Agents only: give agent_ids and no invite_emails. Knowledge Agents answer only the first prompt, so give a Jam of agents one prompt, and use one Jam for each question. Args: title: The Jam's title. prompts: The prompts, in order: text, optional type and seed_reasons. description: What the Jam is about. decision_goal: The decision or learning the Jam serves. expected_output: The result that you want from the Jam. audience: Who takes part. assumptions: Assumptions that participants must know. materials: Reading material: each a name and its text. invite_emails: Email addresses of the people to invite at launch. agent_ids: Knowledge Agents that take part, from create_knowledge_agent or list_knowledge_agents. They start when the Jam launches. public: Whether anyone can find and join the Jam. community_id: The Jam's community, from list_my_communities. |
| launch_jamA | Launch a draft Jam you created. This cannot be undone. The Jam becomes active, and each invitee gets an invitation email. Its Knowledge Agents start in the background: every agent responds to the first prompt, then reviews the other responses. Follow them with get_jam_results. Check the draft with get_jam first. Args: jam_id: ID of a draft Jam you created. send_invitations: Send the invitation emails (default true). |
| add_agents_to_jamA | Have Knowledge Agents take part in an active Jam you created. The agents start in the background, as at a launch: every agent responds to the first prompt, then reviews the other responses. Follow them with get_jam_results. Args: jam_id: ID of an active Jam you created. agent_ids: Knowledge Agent IDs, from list_knowledge_agents. |
| get_jam_resultsA | Show a Jam's results: participation, mean probabilities and top ideas. "funnel" counts what has happened so far, not whether the Jam is done: the participants (people and agents), the participants who responded, the responses, the reviewers and the reviews. An agent that fails or abstains adds nothing. To follow your agents, compare the author_id of each response in get_jam_responses with the agent IDs you gave. "prompts" gives each prompt's number of responses and, for a prediction prompt, the mean probability. "top_ideas" are the five most relevant responses. Args: jam_id: Jam ID. |
| get_jam_responsesA | Read the responses in a Jam: who wrote each one, its probability, text and citations. Use it to see what each Knowledge Agent said. "author_id" is the agent's ID. A citation such as [1] in the text is citation 1 of the response: read its document with read_document(author_id, document_id). The seed ideas of the Jam's plan have the author_type "seed". "probability" is the author's estimate, for a prediction prompt. Args: jam_id: Jam ID. prompt_order: Only the responses to this prompt (the first is 0), from get_jam. |
| list_my_communitiesA | List the communities you belong to, and your default community. A community ID places a new agent or Jam in that community, or shares a Knowledge Agent with its members. |
| list_knowledge_agentsA | List the Knowledge Agents you can ask: your own, and those of other people. A Knowledge Agent answers from its own corpus of documents. Other people's agents are those published to one of your communities, to the whole platform or to the public (and, for an administrator, every agent). "mode" is the agent's default way of answering (see ask_knowledge_agent). "allow_foundation_backfill" means the agent can also answer from the model's general knowledge. Such answers are labeled. |
| create_knowledge_agentA | Create a Knowledge Agent that you own. It is private and has no documents yet. Add documents with upload_document or add_text_document. To let others ask the agent, share it with set_knowledge_agent_visibility. To have several agents discuss a topic, give each one its own perspective (expertise_headline and system_prompt) and its own documents, then put them in a Jam with create_jam. Your agents do not need to be shared to take part in your Jam. Args: name: The agent's name. expertise_headline: One line on what the agent knows, shown on its card. system_prompt: How the agent describes itself and its focus. It does not need to tell the agent to keep to its documents: it does that already. mode: Default way of answering. "generative" writes answers that cite passages. "referenced" returns the passages word for word. allow_foundation_backfill: Let the agent answer from the model's general knowledge when its documents cannot. Such answers are labeled. community_id: Home community, from list_my_communities. Default: your default community. |
| update_knowledge_agentA | Change the settings of a Knowledge Agent you own. Settings you leave out keep their values. Args: agent_id: ID of a Knowledge Agent you own. name: New name. expertise_headline: New one-line description. system_prompt: New system prompt. It replaces the current one. mode: New default way of answering: "generative" or "referenced". model: Language model for generative answers. |
| set_knowledge_agent_visibilityA | Choose who can ask a Knowledge Agent you own. "private": you and platform administrators. "community": the members of one community (give community_id). "platform": anyone signed in who belongs to a community. "public": anyone with the agent's link, without signing in. Args: agent_id: ID of a Knowledge Agent you own. visibility: "private", "community", "platform" or "public". community_id: The community, for "community", from list_my_communities. |
| ask_knowledge_agentA | Ask a Knowledge Agent a question and get an answer from its documents, with citations. Generative mode writes an answer. A sentence ending in a citation such as [1] is evidence: it was checked against passage 1, or is shown in the passage's exact words. A sentence without a citation is the agent's own reasoning. Referenced mode returns the cited passages word for word, with no model writing. When the documents do not cover the question, the agent says so. "confidence" is CrowdSmart's retrieval score, from 0 to 1: how well the best passages match the question. It does not show whether the answer is right. "generation_source" says how the answer was produced (for example "corpus_extractive" or "abstained"). "knowledge_source" is "documents" unless general-knowledge backfill contributed. CrowdSmart records each question in the agent's query history. Args: agent_id: Knowledge Agent ID, from list_knowledge_agents. question: The question to answer from the agent's documents. mode: "generative" or "referenced". Omit to use the agent's own setting. max_chunks: Number of passages to retrieve (default 5). |
| list_documentsB | List the documents in a Knowledge Agent's corpus. Args: agent_id: Knowledge Agent ID, from list_knowledge_agents. |
| read_documentA | Read the text of a document in a Knowledge Agent's corpus, for example to check a citation. The text is rebuilt from the stored passages: each passage starts with a "title | Part n of m:" header, and neighboring passages can overlap. Args: agent_id: Knowledge Agent ID. document_id: Document ID, from list_documents or an answer's citations. max_chars: Maximum number of characters to return (default 20,000). |
| upload_documentA | Upload a file from this computer to a Knowledge Agent you own, and wait for its text. Formats: PDF, DOCX, TXT, MD, JSON, CSV, TSV and XLSX. This waits up to 45 seconds while CrowdSmart extracts the text, and returns the status: "completed" (with the number of passages), "failed" (with the error) or "processing" (check later with get_document_status). Upload only files the user chose. Args: agent_id: ID of a Knowledge Agent you own. path: Path of the file on the computer that runs this server. |
| get_document_statusA | Show whether CrowdSmart has extracted the text of an uploaded document. Use it when upload_document returned "processing". "status" is "pending" or "processing", then "completed" (with the number of passages) or "failed" (with the error). Args: agent_id: Knowledge Agent ID. document_id: Document ID, from upload_document. |
| add_text_documentA | Add text to a Knowledge Agent you own, as a new document that keeps its source. The text is split into passages and can be asked about at once. The source details are stored with every passage, for citations. Args: agent_id: ID of a Knowledge Agent you own. title: Document title, shown in citations. text: The text to add. source_url: URL of the original source. author: Author of the original source. timestamp: ISO 8601 date when the source was published or created. source_type: Kind of source, for example "web", "note", "transcript" or "email". |
| delete_documentA | Delete a document from a Knowledge Agent you own. This cannot be undone. To fix a damaged document, delete it, then upload the original file again. Args: agent_id: ID of a Knowledge Agent you own. document_id: Document ID, from list_documents. |
| check_corpus_qualityA | Find damaged documents in a Knowledge Agent's corpus, with a recommended fix for each. Damaged text makes an agent miss topics its documents hold. The check flags text broken one word per line, garbled OCR, words split by stray spaces and near-duplicate documents. It returns a summary and the flagged documents only. Args: agent_id: Knowledge Agent ID. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 20 tools
Each tool maps to a distinct resource and action. The closest pairs, such as upload_document vs add_text_document and get_jam_results vs get_jam_responses, are clearly separated by names and descriptions.
All tools use consistent snake_case verb_noun naming (list_jams, create_jam, ask_knowledge_agent, set_knowledge_agent_visibility). Compound names remain predictable and readable.
20 tools is somewhat heavy, but the server covers two substantial domains (Jams and Knowledge Agents) and most tools correspond to genuinely distinct operations. There is little obvious filler, though the surface is larger than ideal for quick tool selection.
Core workflows are covered: Jam creation/launch/results and agent/document lifecycle management. However, there is no join_jam despite list_jams advertising public Jams you can join, and no update_jam, delete_jam, or delete_knowledge_agent, leaving lifecycle dead ends.