Follow us on or RSSto be up to date with the latest changes.
v0.22.5
Platform
// February 10, 2026
MCP tool annotations
This release adds support for MCP tool annotations, providing additional metadata about tool behavior to help clients understand how to present and manage tools.
Features
MCP tool annotations support#1553 - Added support for MCP tool annotations on external MCP servers sourced from the Catalog as well as HTTP-based tools. Annotations include title, readOnlyHint, destructiveHint, idempotentHint, and openWorldHint. Tool annotations can be edited in the Playground or in the tools tab of a specific MCP server. (Author: @simplesagar)
This release overhauls the chart plugin and generative UI system with React 19 compatibility, themed components, and improved developer experience.
Features
Chart plugin overhaul#1539 - Replaced Vega-Lite with Recharts for React 19 compatibility, added themed tooltips using CSS variables with oklch colors, and updated chart stories to use MCP orders summary tool. (Author: @adaam2)
Generative UI improvements#1539 - Added macOS-style window frames with traffic light buttons and whimsical cycling loading messages with fade transitions. Streamlined LLM prompt from approximately 150 lines to a concise bulleted format. (Author: @adaam2)
Bug fixes
ActionButton tool execution#1539 - Fixed ActionButton to execute tools via the useToolExecution hook. Aligned Text, Badge, and Progress props with the LLM prompt specification. Fixed catalog schema toolName to action mismatch and setTimeout cleanup in CyclingLoadingMessage. (Author: @adaam2)
This patch release adds support for forwarding and storing user feedback, incorporating it into chat resolution analysis for better conversation outcome tracking.
Features
User feedback forwarding and storage#1504 - Added support for forwarding and storing user feedback. The stored user feedback is incorporated into chat resolution analysis. (Author: @chase-crumbaugh)
OAuth support for testing in the Playground for Catalog sourced mcp servers and per-user metrics
This release adds OAuth support for external MCP servers in the Playground, per-user metrics and log filtering, and customizable documentation button text on MCP install pages.
Features
OAuth support for external MCP servers#1323 - Added OAuth authentication support for external MCP servers in the Playground, enabling secure connections to OAuth-protected MCP services. (Author: @simplesagar)
Per-user metrics and log filtering#1501 - Added a new endpoint to get metrics per user and the ability to filter logs per user. (Author: @tgmendes)
Chat resolution telemetry#1514 - Added writing of chat resolution telemetry data for tracking conversation outcomes. (Author: @tgmendes)
Customizable documentation button text#1494 - Added the ability to customize documentation button text on the MCP install page. (Author: @DhashS)
Bug fixes
OpenAPI parse errors surfaced in UI#1495 - Fixed an issue where OpenAPI parse errors were not surfaced in the UI. (Author: @DhashS)
Metrics loading with disabled logs#1484 - Fixed an issue with loading metrics when logs are disabled. (Author: @tgmendes)
MCP server creation with sources but no toolsets#1471 - Fixed an issue preventing MCP server creation when a project has sources but no toolsets. (Author: @simplesagar)
This patch release fixes an issue where tool group counts showed inflated numbers when loading chat history.
Bug fixes
Tool group count showing inflated numbers#1483 - Fixed tool group count displaying inflated numbers when loading chat history. The server accumulates all tool calls from a turn into each assistant message, causing duplicate tool-call parts when converting messages for the UI. Added deduplication in the message converter so each tool call appears only once. Also fixed buildAssistantContentParts silently dropping tool calls when assistant content is a string. (Author: @adaam2)
This patch release adds backend support for generating chat resolutions, enabling automated summarization and resolution tracking for conversations.
Features
Chat resolution generation#1458 - Added backend support for generating chat resolutions, allowing the platform to automatically create resolution summaries for completed conversations. (Author: @chase-crumbaugh)
Gram Elements now supports React 16 and 17 applications through a new Vite plugin that polyfills React 18 APIs.Applications running older React versions can add a single line to their Vite config to automatically polyfill useSyncExternalStore, useId, useInsertionEffect, startTransition, useTransition, and useDeferredValue — all React 18 APIs used by Elements and its dependencies.
Features
React compatibility Vite plugin#1422 - Added reactCompat() Vite plugin for React 16 and 17 support. Import and add to the Vite config to polyfill React 18 APIs automatically. (Author: @adaam2)
This patch release adds a new chat search endpoint and fixes billing event processing.
Features
Chat search endpoint#1425 - Added a new endpoint to list and search chats grouped by ID. (Author: @tgmendes)
Bug fixes
Billing usage report parsing#1464 - Fixed an issue where Loops rejected billing_usage_report events due to incorrect start_time parsing. (Author: @danielkov)
This patch release fixes tool mentions not working when elements are embedded inside a Shadow DOM.
Bug fixes
Tool mentions inside Shadow DOM#1448 - Fixed tool mention autocomplete in the composer by using getRootNode() instead of document.querySelector to correctly query within the Shadow DOM when present. (Author: @adaam2)
This patch release fixes dark mode styling and improves the tool approval UI for small containers.
Bug fixes
Dark mode text colors for tool approval buttons#1380 - Fixed dark mode text colors for approval and deny buttons in the tool approval UI. (Author: @adaam2)
Thread list and tool approval UI for small containers#1429 - Fixed scroll-to-bottom arrow visibility in dark mode, made tool approval buttons responsive with container queries, fixed popover toggle race condition for Shadow DOM support, corrected popover and tooltip z-index ordering, fixed thread list item title text wrapping, and resized welcome suggestions layout for small containers. (Author: @adaam2)
This release adds server-side filtering capabilities to the tools.list API, enabling more efficient tool discovery and management.
Features
URN prefix filter for tools.list API#1380 - Added urn_prefix filter to the tools.list API for server-side filtering of tools by URN prefix. This enables clients to efficiently query subsets of available tools without client-side filtering. (Author: @adaam2)
Gram Elements introduces experimental message feedback UI with like/dislike buttons and a new replay mode for playing back pre-recorded conversations.These features enhance both end-user experience and developer workflows by enabling user sentiment collection and demonstration capabilities without requiring authentication or live network calls.
Features
Message feedback UI#1395 - Added experimental message feedback UI with like/dislike buttons that appear after assistant messages. Enable with thread.experimental_showFeedback: true config option. Allows users to mark conversations as resolved. (Author: @adaam2)
Follow-on suggestions#1381 - Added support for follow-on suggestions within the Elements library, enabling contextual next-step recommendations. (Author: @adaam2)
Replay mode and cassette recording#1421 - Added replay mode and cassette recording for Elements. The <Replay> component plays back pre-recorded conversations with streaming animations — no auth, MCP, or network calls required. The useRecordCassette hook and built-in composer recorder button allow capturing live conversations as cassette JSON files. (Author: @adaam2)
Bug fixes
Logs page performance#1419 - Memoized config objects and callbacks in Logs page and thread to prevent unnecessary re-renders. Fixed tool group count to use startIndex/endIndex instead of filtering all message parts. Fixed shimmer CSS in shadow DOM. Auto-size charts to container width via ResizeObserver. Truncate large tool output to 50-line preview. Show pulsing dot indicator after tool calls while model is still running. (Author: @adaam2)
Dropped react-query dependency#1402 - Dropped the catalog dependency on react-query in favor of a direct dependency, allowing the elements package to be (p)npm linked into other local projects. (Author: @disintegrator)
This release introduces a major dashboard redesign focused on simplifying MCP server management and improving the overall user experience.
Unified MCP architecture: All sources — whether from external MCP servers in the catalog, code using Gram functions, or OpenAPI uploads — now immediately create MCP servers. This eliminates confusion around the relationship between toolsets and MCP servers. Toolsets remain available under each MCP server for tool curation.
Simplified secret management: MCP secrets are now easier to manage through a dedicated authentication tab under each MCP server. Environments are automatically created when authentication secrets are set up. Each secret can be system-defined or user-defined, where system-defined variables replace the previous "attached environments" concept.
Refreshed layout: A fresher dashboard layout with better use of horizontal and vertical navigation, plus revamped onboarding and home screens.
Features
Dashboard UX overhaul#1324 - Major UX overhaul with redesigned MCP cards, pattern-based illustrations, and improved environment variable management. (Author: @adaam2)
Follow-on suggestions#1381 - Added support for follow-on suggestions within the Elements library, enabling contextual next-step recommendations after AI responses. (Author: @adaam2)
API key last accessed tracking#1412 - Last accessed date is now available for Gram API keys and can be viewed via the API and dashboard settings page. (Author: @disintegrator)
Custom HTTP headers for MCP servers#1367 - Support custom HTTP headers for external MCP servers, enabling authenticated access to registries requiring API keys. (Author: @qstearns)
Custom domains for MCP export API#1404 - Added support for custom domains for MCP export API. (Author: @simplesagar)
Project metrics endpoint#1374 - New endpoint to retrieve summarized project metrics. (Author: @tgmendes)
Install page redirect URLs#1401 - Added support for install page redirect URLs. (Author: @chase-crumbaugh)
Experimental metrics insights#1387 - Added experimental metrics insights to the dashboard. (Author: @tgmendes)
MCP JSON export API#1385 - Added MCP JSON export API with API key authentication for programmatic retrieval of server information per MCP server. (Author: @simplesagar)
Bug fixes
Organization override restored#1406 - Restored the organization override feature for admin users with display of both organization and project IDs. (Author: @disintegrator)
Sources and MCP UX improvements#1394 - Tabbed interfaces, function tools table with runtime column, dynamic tab validation, and softer delete warning styling. (Author: @adaam2)
Gram Elements now supports a generative UI plugin for dynamic widget rendering, enabling AI assistants to create interactive visual interfaces directly within chat conversations.The plugin renders ui code blocks as interactive widgets, providing a rich set of components for displaying data and enabling user interactions.
Features
Generative UI plugin#1348 - Added generative UI plugin for dynamic widget rendering. The plugin renders ui code blocks as interactive widgets including Card, Grid, Metric, Table, Badge, Progress, List, and ActionButton components. ActionButton enables triggering tool calls directly from generated UI. (Author: @adaam2)
This release removes legacy tool metrics logging and introduces Clickhouse logging for GenAI events, providing better observability for AI interactions.MCP server configuration has also been improved with better visibility into environment variables for basic authentication.
Features
Clickhouse logging for GenAI events#1332 - Added analytics logging to Clickhouse for improved observability of AI interactions. (Author: @tgmendes)
Bug fixes
Enhanced MCP configuration display#1337 - All environment variables for basic auth are now shown in MCP details and install pages. (Author: @simplesagar)
Breaking changes
Removed legacy tool metrics#1335 - Old tool metrics logs logic and endpoints have been removed. Migrate to the new Clickhouse-based analytics if relying on this functionality. (Author: @tgmendes)
Introduced an internal OpenRouter Go SDK generated with Speakeasy for use in the Gram server's chat service.The SDK handles request deserialization for OpenRouter API interactions, improving type safety and maintainability. This internal SDK is intended to be replaced by a future official OpenRouter SDK when one becomes available.
Features
OpenRouter Go SDK integration#1329 - Added a Speakeasy-generated Go SDK for OpenRouter API interactions in the chat service. (Author: @disintegrator)
Gram Elements now supports tool mentions and tagging within chat conversations.This feature enables users to reference specific tools directly in their messages using @mentions. When a tool is mentioned, it provides context to the AI about which tools should be used for the current task, improving the precision and relevance of responses.
Features
Tool mentions and tagging#1287 - Added support for @mentioning tools in chat messages to provide context about which tools to use for a given task. (Author: @simplesagar)
This release includes internal build improvements for the Gram Elements library.
Bug fixes
Peer dependency handling#1278 - Automatically sync peer dependencies into the rollup externals list, improving build reliability when using Elements with various package managers. (Author: @adaam2)
Updated the assets service to allow chat sessions to upload and read attachments via the /rpc/assets.uploadChatAttachment and /rpc/assets.serveChatAttachment endpoints.This extends the attachment functionality introduced in v0.17.0 to work with session-based authentication, enabling seamless file sharing within chat experiences.
Features
Session-based attachment access#1201 - Chat sessions can now upload and read attachments through the assets service endpoints. (Author: @disintegrator)
Bug fixes
External OAuth authentication#1239 - Fixed an issue where the server would not return 401 for external OAuth servers when a gram-chat-session header was present. (Author: @walker-tx)
Gram now supports uploading and serving chat attachments through two new API endpoints.The /rpc/assets.uploadChatAttachment endpoint allows uploading attachments for use in chat conversations. The /rpc/assets.serveChatAttachment endpoint can be accessed with an API key or session cookie. The Gram-Project header is not required on the serve endpoint, making it easy for session-based clients to embed attachments in chat using standard HTML tags.For example, images can be embedded directly in chat:
Chat attachment upload and serve endpoints#1173 - Added two new API endpoints for uploading and serving chat attachments, enabling rich media in chat experiences. (Author: @disintegrator)
Enable support for external MCP servers that only have an SSE remote available.Previously, Gram could only support external MCP servers that used the Streamable HTTP transport. Now, servers that still use the deprecated SSE type will be transparently adapted to Streamable HTTP. MCP clients will still use Streamable HTTP to interact with the external MCP server via Gram:
CLIENT <-(Streamable HTTP)-> GRAM <-(SSE)-> EXTERNAL MCP SERVER
Features
Adapt SSE external MCP servers to Streamable HTTP#1142 - Supports external MCP servers with SSE, enhancing compatibility. (Author: @walker-tx)
Bug fixes
GitHub Action workflow for versioning packages#1171 - Corrects GitHub Action for consistent versioning. (Author: @adaam2)
Fix and split up Storybook stories#1177 - Improves Storybook integration for better testing flows. (Author: @adaam2)
Move away from hardcoded API URL#1175 - Increases flexibility by removing hardcoded API URLs. (Author: @disintegrator)
Add telemetry page displaying telemetry logs grouped by tool calls.This new telemetry page provides a powerful way to monitor and analyze your tool executions. Logs are intelligently grouped by tool calls, making it easier to trace execution flows, identify patterns, and debug issues across your Gram Functions and MCP integrations.
Features
New Telemetry Page for Improved Log Analysis#1112 - Adds a new page to display telemetry logs grouped by tool calls, enhancing our monitoring capabilities. (Author: @tgmendes)
Support for Project Deletions#1107 - Enables users to delete projects, thereby enhancing manageability and user control over their workspace. (Author: @walker-tx)
Bug fixes
Readme Enhancements for Better Navigation#1115 - Fixes broken links and improves the structure within the README for better usability. (Author: @adaam2)
Chat Session CORS Support Fixed#1109 - Properly integrates CORS support for chat sessions, ensuring smoother cross-origin interactions. (Author: @chase-crumbaugh)
Empty State for No Search Results in Catalog#1110 - Adds an empty state component when no results are found in catalog searches, improving user experience. (Author: @walker-tx)
Enable private MCP servers with Gram account authentication.This change allows private MCP servers to require users to authenticate with their Gram account. When enabled, only users with access to the server's organization can utilize it.This is ideal for MCP servers that require sensitive credentials (such as API keys), as it allows organizations to:
Secure access to servers handling sensitive secrets (via Gram Environments)
Eliminate the need for individual users to configure credentials during installation
Centralize authentication and access control at the organization level
Add more robust discovery of oauth metadata#1097 - Enhances OAuth metadata discovery protocols for security and reliability. (Author: @qstearns)
Success/failure pages for gram oauth proxy#1085 - Introduces clear user feedback for OAuth authentication processes. (Author: @walker-tx)
Add telemetry logs API#1090 - Provides APIs for detailed telemetry data fetching. (Author: @tgmendes)
Add support for ephemeral chat sessions#1086 - Ephemeral chat sessions for transient user interaction. (Author: @chase-crumbaugh)
External ux for external toolsets#1080 - Offers a basic view for managing external MCP toolsets. (Author: @qstearns)
List and call tools from external MCPs#1057 - Implementation for handling tools from external MCP servers. (Author: @qstearns)
Gram as an OAuth proxy provider for mcp servers#1020 - Utilizes Gram as an OAuth provider for private MCP integration. (Author: @walker-tx)
Catalog page#1041 - Introduction of a catalog page to showcase tools and features in a consolidated manner. (Author: @chase-crumbaugh)
Add external MCPs to deployments#1055 - Facilitates adding external MCP servers during deployment processes. (Author: @qstearns)
Browse external MCP catalog#1054 - Allows users to browse through external MCPs catalog directly from the dashboard. (Author: @qstearns)
Bug fixes
Switch buttons to variant primary in Billing#1094 - Fixes brand button issues in the Billing section by switching to a primary variant. (Author: @qstearns)
Ensure all private servers show private server install instructions#1083 - Corrects the display of private server installation instructions for consistency. (Author: @walker-tx)
Fix CSP issue with Monaco editor#1075 - Resolves a content security policy issue affecting the Monaco editor's functionality. (Author: @walker-tx)