Technical Reference
Toolsets
Giving an LLM access to too many tools can exhaust the context window, which may prevent agents from functioning properly or cause the LLM to choose the wrong tools.
To avoid exhausting the context window, the platform organizes tool definitions into curated collections called toolsets. Each toolset is designed to support a specific goal or use case.
For example, a toolset built to identify inactive customers and send them promotional coupons might include one tool to retrieve customer data and another to send emails. These tools might come from different sources but can be combined in a single toolset for a unified workflow.
Toolsets also scope access for different teams, for example, sales, marketing, and support. This ensures agents only have access to the tools relevant to their workflows, reducing confusion and improving LLM performance.

Good to know
Certain language models place a hard cap on the total number of tools that can be passed to them in a chat completion call.
Designing effective toolsets
Section titled “Designing effective toolsets”When creating a toolset, start by identifying the specific task an LLM client should perform, then include only the tools necessary to accomplish that task. A cohesive, task-focused toolset significantly increases the likelihood that an agent will interact with an API correctly and effectively.
To keep toolsets LLM-friendly:
- Refine tool names and descriptions using tool variations to improve clarity and usability for the LLM.
- Keep toolsets focused by including only what’s needed for the task. Avoid unrelated tools that may confuse the agent.
Experimenting with toolsets
Section titled “Experimenting with toolsets”The Playground provides an interactive environment for testing toolsets before connecting a real client. Send natural language prompts and see how the LLM selects tools and handles responses in real time.
Toolsets as MCP servers
Section titled “Toolsets as MCP servers”Each toolset can be served as a hosted MCP server using the streamable HTTP transport, ready to install into any MCP client. In the dashboard, hosted MCP servers appear under Distribute > MCP, where each server’s detail page controls the tools it exposes, authentication, team access, and settings.
The server’s Settings tab controls visibility (disabled, private, or public), the server’s URL, and publishing. The server sidebar shows the MCP URL and links to a hosted installation page with per-client setup instructions.
Custom domains
Section titled “Custom domains”MCP servers can be hosted on a custom subdomain, such as mcp.example.com.
To set one up, open the organization settings in the dashboard and go to the Custom Domain page, then create two DNS records:
- A CNAME record for the subdomain pointing to
cname.getgram.ai. - A TXT record named
_gram.{your_sub_domain}with the valuegram-domain-verify={your_sub_domain},{organization_id}
Once both DNS records exist, use the verify step on the Custom Domain page to complete the domain linking process.