{
  "$schema_doc": "https://gtmstacker.com/registry/schema/entry.schema.json",
  "stability": "emerging",
  "generator": "agentic-media-registry",
  "generated_at": "2026-09-28T00:00:00Z",
  "id": "com.gtmstacker.registry/tool/charter",
  "type": "tool",
  "slug": "charter",
  "canonical_url": "https://gtmstacker.com/registry/tool/charter/",
  "title": "Charter",
  "description": "Charter is a Python library that lets you declare agent API tools as Pydantic schemas instead of hand-implementing them, auto-handling request construction, auth, wire format, and response trimming. Open source: yes (Apache-2.0); self-hostable; pricing free. In-process, no telemetry; launched 2026-09-28; 1 star.",
  "category": "mcp-agents",
  "tags": [
    "mcp-agents",
    "agent-tooling",
    "tool-definition",
    "pydantic",
    "python",
    "self-hostable"
  ],
  "status": "active",
  "revision": 1,
  "content_hash": "3a01aa974fdc0f81e94f38b1c4fcc91d8fcaab6276eb5a024eb3558ee4db5e25",
  "date_published": "2026-09-28T00:00:00Z",
  "date_modified": "2026-09-28T00:00:00Z",
  "source": {
    "name": "r28ai · GitHub",
    "url": "https://github.com/r28ai/charter"
  },
  "license": "Apache-2.0",
  "one_liner": "Charter declares agent API tools as Pydantic schemas, auto-handling request construction, auth, wire format, and response trimming instead of hand-code.",
  "open_source": "yes",
  "self_hostable": "yes",
  "pricing_model": "free",
  "who_its_for": "A Python engineer wiring an agent to real APIs who would rather declare each tool once as a Pydantic schema — letting the library build the request, handle auth and wire format, and trim the response — than hand-implement a stack of bespoke tool functions.",
  "who_its_not_for": "Non-Python stacks, or teams that need a mature, widely-adopted framework rather than a day-one library at 1 star.",
  "aliases": [
    "charter",
    "r28ai/charter"
  ],
  "alternatives": [
    "composio",
    "metamcp",
    "klavis-ai"
  ],
  "secondary_categories": [
    "ai-infrastructure"
  ],
  "last_verified": "2026-09-28",
  "evidence": {
    "claim_type": "vendor-claim",
    "source_id": "https://github.com/r28ai/charter",
    "note": "Apache-2.0 per repo; 1 star; launched 2026-09-28; Python library, runs in-process, no telemetry; tools declared as Pydantic schemas with auto request construction, auth, wire format and response trimming. Vendor-reported across 534 runs: malformed GraphQL 32->0, unauthorized endpoint calls 10->0, and ~1/4 the bytes forwarded vs raw HTTP tools (7,382 vs 36,383 bytes/run) (github.com/r28ai/charter, verified 2026-09-28)."
  },
  "caveats": "Verified from the primary repo (2026-09-28); no independent testing here. The 534-run figures — malformed GraphQL 32->0, unauthorized calls 10->0, ~4x fewer forwarded bytes (7,382 vs 36,383) — are the maker's own measurement (vendor-claim), not independently reproduced. This is a day-one release at 1 star: a promising declarative pattern, not a proven, hardened framework.",
  "lead": "Charter is a Python library that lets you declare agent API tools as Pydantic schemas instead of hand-implementing them, auto-handling request construction, auth, wire format, and response trimming. Open source: yes (Apache-2.0); self-hostable; pricing free. It runs in-process with no telemetry, launched 2026-09-28, and has 1 star.",
  "chunks": [
    {
      "index": 0,
      "heading_path": [],
      "est_tokens": 84,
      "text": "Charter is a Python library that lets you declare agent API tools as Pydantic schemas instead of hand-implementing them, auto-handling request construction, auth, wire format, and response trimming. Open source: yes (Apache-2.0); self-hostable; pricing free. It runs in-process with no telemetry, launched 2026-09-28, and has 1 star."
    },
    {
      "index": 1,
      "heading_path": [
        null,
        "What it does"
      ],
      "est_tokens": 215,
      "text": "Charter is a Python library that lets you declare agent API tools as Pydantic schemas instead of hand-implementing them, auto-handling request construction, auth, wire format, and response trimming. Open source: yes (Apache-2.0); self-hostable; pricing free. It runs in-process with no telemetry, launched 2026-09-28, and has 1 star.\n\nCharter replaces the usual pile of hand-written tool functions with a declaration. You describe each API tool once as a Pydantic schema, and Charter does the plumbing: it constructs the request, handles authentication, deals with the wire format, and trims the response down before it reaches the model — so the agent both calls the API correctly and does not drown in raw payload. It is a plain Python library that runs in-process, with no telemetry phoning home. Open source: yes (Apache-2.0); self-hostable; pricing free."
    },
    {
      "index": 2,
      "heading_path": [
        null,
        "Provenance"
      ],
      "est_tokens": 233,
      "text": "the wire format, and trims the response down before it reaches the model — so the agent both calls the API correctly and does not drown in raw payload. It is a plain Python library that runs in-process, with no telemetry phoning home. Open source: yes (Apache-2.0); self-hostable; pricing free.\n\n- Apache-2.0 per repo; 1 star; launched 2026-09-28; Python library, in-process, no telemetry; tools declared as Pydantic schemas with auto request construction, auth, wire format and response trimming (github.com/r28ai/charter, verified 2026-09-28).\n- Maker-reported over 534 runs: malformed GraphQL calls dropped 32->0, unauthorized endpoint calls 10->0, and forwarded bytes fell to ~1/4 of raw HTTP tools (7,382 vs 36,383 bytes/run). Stated here as the maker's own numbers (vendor-claim), not independently reproduced.\n- Curated from the GTM Stacker signal registry (2026-09-28 pass); license/facts independently verified 2026-09-28."
    },
    {
      "index": 3,
      "heading_path": [
        null,
        "Why it matters for a GTM stack"
      ],
      "est_tokens": 281,
      "text": "534 runs: malformed GraphQL calls dropped 32->0, unauthorized endpoint calls 10->0, and forwarded bytes fell to ~1/4 of raw HTTP tools (7,382 vs 36,383 bytes/run). Stated here as the maker's own numbers (vendor-claim), not independently reproduced. - Curated from the GTM Stacker signal registry (2026-09-28 pass); license/facts independently verified 2026-09-28.\n\nA GTM agent's usefulness is mostly its tools — CRM writes, enrichment lookups, GraphQL queries — and each hand-built tool is code to get right and bytes of response to feed the model on every call. Charter attacks both: declare the tool as a schema and let the library enforce correct, authorized requests and trim the response, which directly cuts malformed calls and token spend. Open source: yes (Apache-2.0); self-hostable; pricing free. The honest read: the declarative-tool idea is sound and the maker's 534-run numbers (fewer malformed/unauthorized calls, ~4x fewer forwarded bytes) point the right way, but this is a Python-only, day-one project at 1 star — trial it on one integration and confirm the lift before standardizing your tool layer on it."
    }
  ],
  "alternates": {
    "markdown": "https://gtmstacker.com/registry/tool/charter/index.md",
    "html": "https://gtmstacker.com/registry/tool/charter/",
    "json": "https://gtmstacker.com/registry/tool/charter/index.json",
    "server_json": "https://gtmstacker.com/registry/tool/charter/server.json"
  },
  "jsonld": {
    "@context": "https://schema.org",
    "@graph": [
      {
        "@type": "WebSite",
        "@id": "https://gtmstacker.com/#website",
        "url": "https://gtmstacker.com/",
        "name": "GTM Stacker Agent Registry",
        "description": "A daily-updated, agent-native registry of open-source tool discoveries, tool updates, and curated news for the go-to-market / RevOps engineering niche. Machine-readable first: agents can discover, parse, page, and delta-sync it without scraping HTML.",
        "inLanguage": "en",
        "publisher": {
          "@id": "https://gtmstacker.com/#organization"
        }
      },
      {
        "@type": "Organization",
        "@id": "https://gtmstacker.com/#organization",
        "name": "GTM Stacker",
        "url": "https://gtmstacker.com",
        "description": "The growth-systems practice of Theo Popov: AI-native enrichment, outbound, content engines and internal tooling for startups and venture programs. Its agent-native media property, the GTM Stacker Agent Registry, maintains a daily-updated catalog of open-source go-to-market and RevOps tools that both people and AI engines can discover, compare, and cite.",
        "foundingDate": "2024-08",
        "knowsAbout": [
          "go-to-market engineering",
          "RevOps",
          "sales automation",
          "marketing operations",
          "open-source software",
          "AI agents"
        ],
        "founder": {
          "@type": "Person",
          "@id": "https://gtmstacker.com/#founder",
          "name": "Theo Popov",
          "jobTitle": "Growth Operations & GTM Systems",
          "url": "https://gtmstacker.com/about/",
          "sameAs": [
            "https://www.linkedin.com/in/theo-popov",
            "https://x.com/Theo_Popov",
            "https://github.com/theopopov"
          ],
          "worksFor": {
            "@id": "https://gtmstacker.com/#organization"
          }
        },
        "sameAs": [
          "https://www.linkedin.com/company/gtmstacker",
          "https://www.youtube.com/@gtmstacker",
          "https://www.instagram.com/gtmstacker/",
          "https://www.tiktok.com/@gtmstacker"
        ],
        "mainEntityOfPage": "https://gtmstacker.com/registry/about/"
      },
      {
        "@type": "SoftwareApplication",
        "@id": "https://gtmstacker.com/registry/tool/charter/#software",
        "name": "Charter",
        "identifier": "r28ai/charter",
        "description": "Charter is a Python library that lets you declare agent API tools as Pydantic schemas instead of hand-implementing them, auto-handling request construction, auth, wire format, and response trimming. Open source: yes (Apache-2.0); self-hostable; pricing free. In-process, no telemetry; launched 2026-09-28; 1 star.",
        "applicationCategory": "DeveloperApplication",
        "url": "https://gtmstacker.com/registry/tool/charter/",
        "datePublished": "2026-09-28T00:00:00Z",
        "dateModified": "2026-09-28T00:00:00Z",
        "isPartOf": {
          "@id": "https://gtmstacker.com/#website"
        },
        "license": "https://spdx.org/licenses/Apache-2.0.html",
        "codeRepository": "https://github.com/r28ai/charter",
        "keywords": "mcp-agents, ai-infrastructure, agent-tooling, tool-definition, pydantic, python, self-hostable",
        "author": {
          "@type": "Organization",
          "name": "r28ai",
          "url": "https://github.com/r28ai",
          "sameAs": [
            "https://github.com/r28ai/charter"
          ]
        },
        "offers": {
          "@type": "Offer",
          "price": 0,
          "priceCurrency": "USD"
        },
        "isSimilarTo": [
          {
            "@type": "SoftwareApplication",
            "name": "Composio",
            "url": "https://gtmstacker.com/registry/tool/composio/",
            "applicationCategory": "DeveloperApplication",
            "offers": {
              "@type": "Offer",
              "price": 0,
              "priceCurrency": "USD"
            }
          },
          {
            "@type": "SoftwareApplication",
            "name": "MetaMCP",
            "url": "https://gtmstacker.com/registry/tool/metamcp/",
            "applicationCategory": "DeveloperApplication",
            "offers": {
              "@type": "Offer",
              "price": 0,
              "priceCurrency": "USD"
            }
          },
          {
            "@type": "SoftwareApplication",
            "name": "Klavis AI",
            "url": "https://gtmstacker.com/registry/tool/klavis-ai/",
            "applicationCategory": "DeveloperApplication",
            "offers": {
              "@type": "Offer",
              "price": 0,
              "priceCurrency": "USD"
            }
          }
        ]
      },
      {
        "@type": "BreadcrumbList",
        "@id": "https://gtmstacker.com/registry/tool/charter/#breadcrumb",
        "itemListElement": [
          {
            "@type": "ListItem",
            "position": 1,
            "name": "GTM Stacker Registry",
            "item": "https://gtmstacker.com/registry/"
          },
          {
            "@type": "ListItem",
            "position": 2,
            "name": "MCP Agents",
            "item": "https://gtmstacker.com/registry/category/mcp-agents/"
          },
          {
            "@type": "ListItem",
            "position": 3,
            "name": "Charter",
            "item": "https://gtmstacker.com/registry/tool/charter/"
          }
        ]
      }
    ]
  },
  "tool": {
    "name": "r28ai/charter",
    "repository": {
      "url": "https://github.com/r28ai/charter",
      "source": "github"
    }
  }
}
