{"id":31718716,"url":"https://github.com/speakeasy-api/gram","last_synced_at":"2026-05-16T01:11:38.513Z","repository":{"id":312891703,"uuid":"1033414384","full_name":"speakeasy-api/gram","owner":"speakeasy-api","description":"Context layer for your product. Connect your agents and chat to 1st and 3rd party MCP servers!","archived":false,"fork":false,"pushed_at":"2026-03-08T02:48:50.000Z","size":536564,"stargazers_count":214,"open_issues_count":56,"forks_count":21,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-03-08T06:46:25.411Z","etag":null,"topics":["agents","aisdk","golang","mcp","mcp-client","mcp-servers","openapi","openrouter","serverless","tools","typescript"],"latest_commit_sha":null,"homepage":"https://getgram.ai","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/speakeasy-api.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":"CODEOWNERS","security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":"CLA.md"}},"created_at":"2025-08-06T19:24:20.000Z","updated_at":"2026-03-08T01:04:16.000Z","dependencies_parsed_at":"2025-10-29T05:19:37.575Z","dependency_job_id":"c9eda784-6b02-4424-94cb-1cc7c2459a07","html_url":"https://github.com/speakeasy-api/gram","commit_stats":null,"previous_names":["speakeasy-api/gram"],"tags_count":396,"template":false,"template_full_name":null,"purl":"pkg:github/speakeasy-api/gram","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/speakeasy-api%2Fgram","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/speakeasy-api%2Fgram/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/speakeasy-api%2Fgram/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/speakeasy-api%2Fgram/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/speakeasy-api","download_url":"https://codeload.github.com/speakeasy-api/gram/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/speakeasy-api%2Fgram/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30480107,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-13T23:57:05.347Z","status":"ssl_error","status_checked_at":"2026-03-13T23:56:58.046Z","response_time":60,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["agents","aisdk","golang","mcp","mcp-client","mcp-servers","openapi","openrouter","serverless","tools","typescript"],"created_at":"2025-10-09T02:55:32.469Z","updated_at":"2026-03-14T02:24:47.470Z","avatar_url":"https://github.com/speakeasy-api.png","language":"TypeScript","funding_links":["https://polar.sh/"],"categories":["📚 Projects (1974 total)"],"sub_categories":["MCP Servers"],"readme":"\u003ca href=\"https://www.speakeasy.com/product/gram\" target=\"_blank\"\u003e\n   \u003cpicture\u003e\n       \u003csource media=\"(prefers-color-scheme: light)\" srcset=\"https://github.com/user-attachments/assets/1812f171-1650-4045-ac35-21bdd7b103a6\"\u003e\n       \u003csource media=\"(prefers-color-scheme: dark)\" srcset=\"https://github.com/user-attachments/assets/3f14e446-0dec-4b8a-b36e-fd92efc25751\"\u003e\n       \u003cimg src=\"https://github.com/user-attachments/assets/3f14e446-0dec-4b8a-b36e-fd92efc25751#gh-dark-mode-only\" alt=\"Gram\"\u003e\n   \u003c/picture\u003e\n \u003c/a\u003e\n\n\u003ch3 align=\"center\"\u003eGram - The MCP Cloud Platform\u003c/h3\u003e\n\u003cp align=\"center\"\u003e\n    \u003cbr /\u003e\n    \u003ca href=\"https://www.speakeasy.com/product/gram\"\u003e\u003cstrong\u003eLearn more »\u003c/strong\u003e\u003c/a\u003e\n    \u003cbr /\u003e\n    \u003cbr /\u003e\n    \u003ca href=\"https://speakeasy.com/\"\u003e\u003cimg alt=\"Built by Speakeasy\" src=\"https://www.speakeasy.com/assets/badges/built-by-speakeasy.svg\" /\u003e\n    \u003cbr /\u003e\n  \u003c/a\u003e\n    \u003ca href=\"#Support\"\u003e\u003cstrong\u003eDocumentation\u003c/strong\u003e\u003c/a\u003e ·\n    \u003ca href=\"#Techstack\"\u003e\u003cstrong\u003eTech Stack\u003c/strong\u003e\u003c/a\u003e ·\n    \u003ca href=\"/CONTRIBUTING.md\"\u003e\u003cstrong\u003eContributing\u003c/strong\u003e\u003c/a\u003e ·\n    \u003ca href=\"https://app.getgram.ai/\"\u003e\u003cstrong\u003eLogin\u003c/strong\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n\n\u003c/p\u003e\n\n\u003chr /\u003e\n\n# Introduction\n\n[Gram](https://app.getgram.ai) is a platform for creating, curating, and hosting Model Context Protocol (MCP) servers with ease. We currently support both OpenAPI documents as well as custom TypeScript functions as sources for tools.\n\n## What can you do with Gram?\n\nWith Gram you can empower your LLM and Agents to access the right data at the right time. Gram provides a high-level TypeScript SDK and OpenAPI support to define tools, compose higher order custom tools and group tools together into toolsets. Every toolset is instantly available as a hosted and secure MCP server.\n\nIf you are looking to get started on the hosted platform you can [Sign up](https://app.getgram.ai/), or check out the [Quickstart guide](https://www.getgram.ai/docs/introduction).\n\n## Features\n\n└ Minimal, lightweight, and open source.  \n└ High-level TypeScript framework that makes working with MCP easy.  \n└ Use a custom tool builder to create higher-order tools by chaining lower level tools.  \n└ OAuth support out-of-the-box: DCR, BYO Authorisation, and standard flows.  \n└ First class support for OpenAPI `3.0.X` and `3.1.X`.  \n└ Follows the [MCP](https://modelcontextprotocol.io/docs/getting-started/intro) specification.\n\n## Gram Functions\n\nCreate agentic tools from simple TypeScript code using the [Gram Functions Framework](https://www.getgram.ai/docs/gram-functions/introduction). Refer to the [Getting Started](https://www.getgram.ai/docs/getting-started/typescript) guide to learn more.\n\nThe fastest way to get started is with the `npm create @gram-ai/function@latest` command, which creates a complete TypeScript project with a working Gram function. Deployable and runnable locally as a MCP server.\n\n```bash\n# Install the CLI and follow the prompts\nnpm create @gram-ai/function@latest\n\n# Once created, move into your newly created function directory\ncd my_function\n\n# Build and Deploy\nnpm run build\nnpm run push\n```\n\nA default function is created for you.\n\n```typescript\nimport { Gram } from \"@gram-ai/functions\";\nimport * as z from \"zod/mini\";\n\nconst gram = new Gram().tool({\n  name: \"add\",\n  description: \"Add two numbers together\",\n  inputSchema: { a: z.number(), b: z.number() },\n  async execute(ctx, input) {\n    return ctx.json({ sum: input.a + input.b });\n  },\n});\n\nexport default gram;\n```\n\nIn addition you get a:\n\n- A `server.ts` is created so you can run the tool locally as a MCP server with MCP inspector with `pnpm run dev`\n- A `README` and `CONTRIBUTING` guide for next steps on building out your custom tool.\n\n### Common use cases include:\n\n└ Host one or more remote MCP servers at a custom domain like `mcp.{your-company}.com`.  \n└ Power your in-application chat by exposing context from your internal APIs or 3rd Party APIs through tools.  \n└ Add data to your AI workflows in Zapier, N8N and other workflow platforms  \n└ Manage and secure MCP servers for your entire organization through a unified control plane.\n\nCheck out the `examples` folder in this repo for working examples. Or open a pull request if you have one to share!\n\n## Gram CLI\n\nThe CLI allows for programmatic access to Gram, enabling you to manage the process of pushing sources (either OpenAPI documents or Gram Functions) for your MCP servers. Get started with documentation [here](https://www.getgram.ai/docs/command-line).\n\n```bash\ncurl -fsSL https://go.getgram.ai/cli.sh | bash\n```\n\nAnd then:\n\n```bash\ngram auth\n```\n\n## Support\n\n- Slack: [Join our slack](https://join.slack.com/t/speakeasy-dev/shared_invite/zt-3hudfoj4y-9EPqMmHIFhNiTtannqiV3Q) for support and discussions\n- In-App: When using the [application](https://app.getgram.ai/) you can engage with the core maintainers of the product.\n- GitHub: Contribute or report issues [on this repository](https://github.com/speakeasy-api/gram/issues/new).\n- Documentation for Gram is also open source. View it [here](https://www.getgram.ai/docs/introduction) and contribute [here](https://github.com/speakeasy-api/developer-docs/tree/main/docs/gram).\n\n## Contributing\n\nContributions are welcome! Please open an issue or discussion for questions or suggestions before starting significant work.\n\nSee [CONTRIBUTING.md](./CONTRIBUTING.md) for development setup and detailed contribution guidelines.\n\n## Techstack\n\n└ [TypeScript](https://www.typescriptlang.org/) – dashboard language.  \n└ [Golang](https://go.dev/) - backend language.  \n└ [Goa](https://github.com/goadesign/goa) - design-first API framework.  \n└ [Temporal](https://temporal.io/) - workflow engine.  \n└ [Polar](https://polar.sh/) - usage based billing.  \n└ [OpenRouter](https://openrouter.ai/) - LLM gateway.  \n└ [Speakeasy](https://www.speakeasy.com/) - Generated SDKs. Spec hosted [here](http://app.getgram.ai/openapi.yaml).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fspeakeasy-api%2Fgram","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fspeakeasy-api%2Fgram","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fspeakeasy-api%2Fgram/lists"}