Follow us on to be up to date with the latest changes.
v0.22.2
// February 4, 2026
Chat resolution generation
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 )
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 )
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 )
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 )
Updated the assets service to allow chat sessions to upload and read attachments via the
and
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
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:
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 )
Gram now supports uploading and serving chat attachments through two new API endpoints.The
endpoint allows uploading attachments for use in chat conversations. The
endpoint can be accessed with an API key or session cookie. The
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:
Features
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 )
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 )
Add ListToolExecutionLogs API endpoint for querying structured tool logs with cursor-based pagination and filtering support.This new endpoint enables you to programmatically query and analyze tool execution logs from your Gram Functions. With cursor-based pagination and flexible filtering options, you can efficiently retrieve and process execution history for debugging, monitoring, and analytics purposes.Learn more about using logsCheck out the logs documentation to get started with the new API endpoint.
Features
Add local MCP registry infrastructure#1053 - Introduces infrastructure for local MCP registry to enhance external MCP code development. (Author: @qstearns )
Small Agent API changes for response view#988 - Updates to AgentAPI improve paginated log view capabilities for better response handling. (Author: @ryan-timothy-albert )
Add API endpoint to list/retrieve tool execution logs#1040 - New API endpoint introduced for fetching tool execution logs, enhancing monitoring capabilities. (Author: @tgmendes )
Ensure function OAuth respected in install page#1034 - Ensures OAuth protocols are adhered to during installations, strengthening security and user trust. (Author: @ryan-timothy-albert )
Replace Shiki with Monaco Editor for viewing large inline specs#1030 - Shifts to Monaco Editor for better handling and performance when viewing large spec files. (Author: @simplesagar )
Pin to MCP remote 0.1.25 in references that still include MCP remote#1042 - Pins older version of mcp-remote to avoid compatibility issues with legacy node versions. (Author: @ryan-timothy-albert )
Bug fixes
Don't brick page when dialogs close#1061 - Fixes freezing issues caused by dialog and popover interactions on pages. (Author: @chase-crumbaugh )
Playground doesn't update available tools when adding/removing tools#1037 - Corrects toolset reflection in the user interface of the playground tool. (Author: @simplesagar )
Playground tool parameters not rendering on initial load#1031 - Fixes an issue with the immediate display of tool parameters upon user interaction. (Author: @simplesagar )
Ensure system env compilation case sensitive#1033 - Corrects environment variable compilation to be case sensitive, preventing potential bugs. (Author: @ryan-timothy-albert )
Pass content type when uploading to Tigris#1044 - Ensures correct content type setting during uploads to Tigris for better data handling. (Author: @disintegrator )
Previously, Gram Functions could only be around 700KiB zipped, which was adequate for building many tools but was severely limiting for many others. One example is ChatGPT Apps, which can be full-fledged React applications with images, CSS and JS assets embedded alongside an MCP server, all running in a Gram Function. Many such apps may not fit into this constrained size. Large Gram Functions addresses this limitation by allowing larger zip files to be deployed with the help of Tigris, an S3-compatible object store that integrates nicely with Fly.io where Gram Functions are deployed and run.Get started with Gram FunctionsRun these commands in the terminal:
Create a new function project. See gram functions docs for more info
Build the functions
Push the functions to Gram
The build command should open a new window with the next step. If it doesn't, click here to continue.
Features
Support for Large Gram Functions#969 - Enables handling of substantially larger functions that expand the potential of the platform. (Author: @disintegrator )
Ensure Function OAuth in Install Page#1034 - Improves security by ensuring OAuth configurations are respected during installation. (Author: @ryan-timothy-albert )
Reading Toolsets Available to Chat Scoped Auth#1022 - Extends authentication options to provide more granular access controls for chat services. (Author: @ryan-timothy-albert )
PowerShell Installer Script#1026 - Automates installation of the CLI, enhancing user setup experience. (Author: @walker-tx )
Bug fixes
Playground Tool Parameters Not Rendering on Initial Load#1031 - Fixes a frustrating user interface bug in the playground. (Author: @simplesagar )
Fix Vercel CORS Check#1035 - Removes unnecessary CORS checks for smoother operation. (Author: @ryan-timothy-albert )
Fix Dashboard's WebGL Onboarding Bugs#1028 - Ensures that users without graphics acceleration have a graceful experience. (Author: @farazcsk )
SSE Streaming Response Truncation and Client Side Issues Fix#998 - Addresses issues in multi-turn tool call conversations. (Author: @simplesagar )
Performance improvements
Replace Shiki with Monaco Editor for Viewing Large Inline Specs#1030 - Enhances performance for viewing large specifications. (Author: @simplesagar )
Upgraded to AI SDK 5 with new chat transport and message handling. Playground now features built-in log viewer and tool editing side by side in addition to better inline tool rendering for chat.
Features
Restore AI SDK 5 Upgrade#992 - Restores previous updates to the AI SDK, enhancing performance and stability. (Author: @speakeasybot )
Update Chat Credit Billing#983 - Enhancements to the billing terms for chat credits, with customizable limits for organizations. (Author: @ryan-timothy-albert )
Static OAuth Callback in OAuth Proxy#980 - Simplifies OAuth by removing the need for individual server redirects. (Author: @ryan-timothy-albert )
Allow Uploading OpenAPI Specs via Remote URL#977 - Users can now upload OpenAPI specifications via URLs. (Author: @bradcypert )
Fallback Temporal Workflow for Openrouter Model Usage#978 - Implements a fallback Temporal workflow to handle delays in the Openrouter model. (Author: @ryan-timothy-albert )
Replace Windsurf Install Snippets with VSCode#971 - Updates installation guides for easier setup via VSCode. (Author: @walker-tx )
Bug fixes
Inconsistency in Environment Passthrough Authentication#997 - Fixes authentication inconsistencies in private server environments. (Author: @ryan-timothy-albert )
Nullable Chat ID Model Billing#995 - Addresses an issue with nullable ChatID in billing models. (Author: @ryan-timothy-albert )
Two updates to the MCP install page clients: Update Codex CLI installation instructions to use http instead of stdio with mcp-remote and remove Windsurf installation instructions and add VSCode install link.
Features
Update Chat Credit Billing#983 - Refined billing, increasing chat credits for pro and enterprise accounts. (Author: @ryan-timothy-albert )
Clone Pizzaz Example into Examples Folder#981 - Adds a new example to demonstrate newest features. (Author: @walker-tx )
Static OAuth Callback in OAuth Proxy#980 - Simplifies OAuth configurations across multiple servers. (Author: @ryan-timothy-albert )
Allow Uploading OpenAPI Specs via Remote URL#977 - Enhances integration capabilities of API specs. (Author: @bradcypert )
Fallback Temporal Workflow Openrouter Model Usage#978 - Implements backup strategies for Openrouter. (Author: @ryan-timothy-albert )
Replace Windsurf Install Snippets with Visual Studio Code#971 - Streamlines the installation process through VSCode. (Author: @walker-tx )
Introduces a new page for each source added to a project. The source page provides details on the source, which toolsets use it, and the ability to attach an environment to a source.
MCP servers can now include custom instructions that are displayed on the install page and provided to LLMs. This feature helps guide users and AI assistants on how to effectively use the server's tools and capabilities, improving discoverability and usage patterns.
Features
Server Instructions to Frontend#944 - Frontend now supports server instructions, enhancing configurability and user guidance. (Author: @tgmendes )
OAuth Passthrough for Function Tools#929 - Introduces OAuth credential passthrough for enhanced function tool integration. (Author: @ryan-timothy-albert )
Admin View for Creating OAuth Proxies#936 - Streamlined creation of OAuth proxies directly from admin panels, improving setup times and user experience. (Author: @ryan-timothy-albert )
Planetscale Example#928 - Practical example to showcase PlanetScale usage for real-world applications. (Author: @walker-tx )
Clickhouse Example#937 - Practical example to showcase ClickHouse usage for real-world applications. (Author: @walker-tx )
Attach Environments to Toolsets#885 - Attach environments directly to toolsets for more dynamic configuration management. (Author: @qstearns )
Bug fixes
Panic Recovery for HTTP Handlers#933 - Adds panic recovery in HTTP handlers ensuring stability and reliability. (Author: @disintegrator )
Incorrect Model Pricing Mapping Fixed#930 - Rectifies the model pricing mapping to ensure accurate cost calculations. (Author: @ryan-timothy-albert )
This feature extends environment variable attachment capabilities to toolsets, allowing for more refined configuration management and operational flexibility.
Features
Planetscale Example Integration#928 - New exemplary configurations demonstrate the practical implementation of PlanetScale DBs in varied development settings, solidifying commitment to versatile database solutions. (Author: @walker-tx )
Product Metric Attribute Estimating Tool Call Success#919 - With a focus on predictive analytics, this tool informs success rates of API calls, aiding in proactive error handling and system diagnostics. (Author: @ryan-timothy-albert )
Chat-based Usage and Openrouter Key Update#918 - This update revolutionizes user engagement by leveraging chat-interface interactions, enhancing user experience through intuitive operation. (Author: @ryan-timothy-albert )
Update Chat Model List to be More Modern#922 - More modern and efficient chat models have been introduced, ensuring users have access to cutting-edge AI-powered chat functionalities. (Author: @ryan-timothy-albert )
Bug fixes
Update Metadata Type in Polar Client#925 - Fixes a critical type mismatch in the event metadata handling that improves data integrity and operational stability. (Author: @disintegrator )
Capturing Openrouter Usage Data Streaming#921 - A vital fix that corrects the streaming data capture for Openrouter usage, ensuring accurate and reliable usage analytics. (Author: @ryan-timothy-albert )
Dynamic Toolsets v2 - Combining progressive discovery and semantic search
Introducing Dynamic Toolsets v2. Our new approach combines the strengths of both methods into a unified system that exposes three core tools:
,
, and
. The key insight is that tool descriptions provide structure and discoverability, while semantic search provides efficiency and natural language discovery. Together, they create a system that scales naturally without sacrificing usability.
Features
Gram Functions composition - Gram instances are now composable. This allows some similarity to Hono's grouping pattern, making it possible to split and organize Gram Functions code bases more than before.Before:
Now, with composability:
Integrate dynamic toolsets v2 with progressive and semantic search in one feature
Introduce announcement modal for new Gram Functions release
Add Resend example demonstrating email reminders via the Resend API
Support non-blocking deployment creation for non-intrusive deployment initiation
Update Gram description tagline and rearrange sidebar UI elements
Index embedding tags to enhance search and retrieval operations
Add tags to embeddings table for dynamic toolsets phase two
Fixes
Wrap long environment variable names in Playground auth tab to prevent overflow
Fix Moonshine button issues and adjust various UI elements
Ensure dark mode compatibility for Shiki themes
Increase function reap batch size for improved resource recovery
Enhance deployment tracking and local Gram CLI setup processes
Update esbuild configuration with CommonJS require shim for better compatibility
Correct textual content in create-function CLI for improved clarity
Deployment processes have been reengineered to become non-blocking, providing significant agility in handling deployments and improving overall system responsiveness.
Features
Add non-blocking deployment creation for more flexible deployment handling
Update Gram description and enhance login tagline with improved UI navigational elements
Add tags to embeddings table for evolving dynamic toolsets
Index embedding tags to optimize tag-based searches
Fixes
Enhance deployment tracking and local CLI setup configurations
Add CommonJS require shim to esbuild output for better dependency compatibility
Improve Gram install processes for enhanced installation experience
Update create-function CLI copy for clarity and accuracy
Experimental dynamic tool selection now uses semantic searches to organize tools automatically, making it easier to access and interact with relevant tools.
Features
Add select/deselect all option for tool management to enhance productivity
Implement semantic dynamic toolsets with experimental tool selection capabilities
Add
flag to
command for better installation location management
Add Pylon task creation Gram Function example demonstrating full API integration
Fixes
Fix incorrect workflow execution in ExecuteProjectFunctionsReaperWorkflow
Address inverted logging condition in OpenAPI parser
Introduce workflow to clean up unused Fly.io machines from past deployments