Skip to main content
Glama
AccelByte

AGS Extend SDK MCP Server

Official
by AccelByte

AGS Extend SDK MCP Server

A Model Context Protocol (MCP) server that gives AI assistants (VS Code Copilot, Cursor, Claude, Gemini, Antigravity) the AccelByte Extend SDK as additional context — so they can answer questions about the SDK and generate correct Extend SDK code.

What It Does

  • Search Extend SDK symbols (functions and models) by name, tags, or description (fuzzy matching)

  • Describe specific symbols — parameters, fields, imports, examples, return types, required permissions

  • Scaffold a new Extend app from a template repository via the create-extend-app prompt

It serves SDK reference for four languages — C#, Go, Java, and Python. You pick the language per connection through the URL path (see Choose your language).

AccelByte hosts the Extend SDK MCP Server for you — you don't need to install or run anything locally. Just point your AI assistant at the hosted MCP URL for your language. There's no sign-in: the server only exposes read-only SDK reference data. Prefer to run it yourself? See Running Locally & Self-Hosting.


Related MCP server: AGS API MCP Server

Quick Install

Paste this into your AI coding assistant — it will fetch the install guide, ask you a couple of questions, and configure everything for you:

Install the AGS Extend SDK MCP server for me. Fetch and follow the instructions at
https://raw.githubusercontent.com/AccelByte/ags-extend-sdk-mcp-server/refs/heads/master/INSTALL.md

Works in VS Code Copilot, Cursor, Claude Code, Antigravity, and Gemini CLI.

Claude Desktop users: The simplest path is Settings → Connectors → Add custom connector (Name: extend-sdk, URL: your MCP URL) — no AI installer needed. See Claude Desktop below.

If you want to use the Quick Install prompt above, switch to the Code tab first (Chat and Cowork can't edit your config file).

Claude Desktop — Code tab

Prefer to do it yourself? See Manual Install below.


Manual Install

Step 1: Choose your language and get your URL

The MCP URL is the hosted server's base URL followed by /extend-mcp/{language}:

https://<mcp-server-host>/extend-mcp/{language}

Language

URL path

C#

/extend-mcp/csharp

Go

/extend-mcp/go

Java

/extend-mcp/java

Python

/extend-mcp/python

  • <mcp-server-host> is the host of your organization's deployment — ask your AccelByte administrator if you're not sure.

  • One hosted instance serves every language. To switch language later, just change the trailing path segment (e.g. /extend-mcp/python/extend-mcp/go). Requesting an unknown language returns HTTP 400.

  • The base path (/extend-mcp) with no language serves the server's configured default language.

No hosted instance? You can run the server yourself with Docker — see Running Locally & Self-Hosting.

Step 2: Configure your client

The server uses Streamable HTTP transport. Clients that support HTTP transport connect to the URL directly. Clients that only support stdio transport use mcp-remote as a bridge.

Need mcp-remote? It runs via npx, so you need Node.js 18+ with npx available — verify with npx --version. No global install required.

Substitute your URL from Step 1 wherever you see <URL> below.

Visual Studio Code (Copilot)

.vscode/mcp.json in your workspace (or user settings.json):

{
  "servers": {
    "extend-sdk": {
      "type": "http",
      "url": "<URL>"
    }
  }
}

If your client can't reach an HTTP server, swap to: { "command": "npx", "args": ["-y", "mcp-remote", "<URL>"] }.

See the VS Code MCP documentation.

Cursor

.cursor/mcp.json in your workspace (or user settings):

{
  "mcpServers": {
    "extend-sdk": {
      "type": "http",
      "url": "<URL>"
    }
  }
}

If your client can't reach an HTTP server, swap to: { "command": "npx", "args": ["-y", "mcp-remote", "<URL>"] }.

See the Cursor MCP documentation.

Claude Code

claude mcp add --transport http extend-sdk <URL>

Fallback (stdio-only environments): claude mcp add extend-sdk -- npx -y mcp-remote <URL>.

See the Claude Code MCP documentation.

Antigravity

mcp_config.json in your project root:

{
  "mcpServers": {
    "extend-sdk": {
      "type": "http",
      "url": "<URL>"
    }
  }
}

If your client can't reach an HTTP server, swap to: { "command": "npx", "args": ["-y", "mcp-remote", "<URL>"] }.

See the Antigravity MCP documentation.

Gemini CLI

gemini mcp add --transport http extend-sdk <URL>

Fallback (stdio-only environments): gemini mcp add extend-sdk -- npx -y mcp-remote <URL>.

See the Gemini CLI MCP documentation.

Claude Desktop

Option A — Custom Connector (recommended)

  1. Open Settings → Connectors → Add custom connector (under the "Customize" area).

  2. Fill in Name: extend-sdk and Remote MCP server URL: your <URL> from Step 1.

  3. Save.

Don't see "Add custom connector"? Some Team and Enterprise plans disable custom connectors via workspace policy. If the option is missing or greyed out, use Option B.

Option B — mcp-remote config file (fallback)

Edit claude_desktop_config.json:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

  • Windows: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "extend-sdk": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "<URL>"]
    }
  }
}

Restart Claude Desktop after saving.


Using the Tools

Once connected, your assistant has access to these tools. In your assistant's chat, try the example prompts below — give permission to run the tools when requested.

search-symbols

Search Extend SDK symbols by name, tags, or description, with fuzzy matching. Returns a paginated list of summaries.

"Search for symbols related to user" · "Find symbols for inventory"

describe-symbols

Get full details for specific symbols by ID — fields, parameters, imports, example usage, return type, and required permissions.

"Describe the AdminCreateUser@iam and User@iam symbols"

create-extend-app

A prompt template that clones an Extend app template repository and opens it (in a Dev Container when available) so you can start from a working sample.

Invoke the create-extend-app prompt and follow the scenario / template / language completions.

TIP

When coding with this MCP server, start from an Extend SDK getting-started sample or an Extend app template instead of a blank project, and add relevant source files as context for better results.


Running it yourself

Prefer to run the server locally (stdio) or host the HTTP server yourself? See Running Locally & Self-Hosting for Docker usage, environment variables, HTTP endpoints, smoke tests, developing from source, and releasing the image.


Troubleshooting

Tool calls fail / the server returns 400

Check the language in your URL path. It must be one of csharp, go, java, or python (e.g. /extend-mcp/go). An unknown language returns HTTP 400.

Client can't connect to the HTTP URL

Some clients only support stdio transport. Switch that client to the mcp-remote bridge config shown in Step 2. It needs Node.js 18+ with npx available (npx --version).

"Connection refused" or the host is unreachable

Confirm the <mcp-server-host> and full URL are correct (ask your AccelByte administrator), and that your network can reach it.


Documentation

Contributions

This repository is published as-is. For bug reports and questions, please open an issue.

Available Tools

2 tools
describe-symbolsDescribe symbolsA

Describe multiple symbols with pagination.

Usage Patterns:

  1. Search: search_symbols(query: "user creation") → get the IDs of the symbols that match the query and other symbols that are referenced by the matched symbols.

  2. Describe: describe_symbols( ids: [ "CreateUser@iam.function", "CreateUserRequest@iam.model", "CreateUserResponse@iam.model" ] )

  3. Analyze: Use the symbol's description, imports, example, fields, parameters, and return_type for instantiation and usage information.

ParametersJSON Schema
NameRequiredDescriptionDefault
idsYesList of symbol IDs used to fetch detailed information for each symbol.
limitNoMaximum number of symbols to return (default: 25).
offsetNoOffset for pagination (default: 0).

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYesRepresents a paginated list of symbols.

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It describes pagination behavior and shows usage patterns, but there is a contradiction with the input schema: the first usage pattern omits the required 'ids' parameter. This omission is misleading and reduces transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with sections and examples, making it easy to follow. However, the inclusion of a usage pattern that contradicts the required parameter reduces conciseness and adds confusion.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the presence of an output schema, the description does not need to explain return values. The provided workflow and usage patterns are helpful, but the contradiction regarding required parameters leaves the description incomplete and potentially misleading.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description adds usage patterns that clarify how parameters interact (e.g., pagination with limit/offset), but it does not add significant meaning beyond what the schema already describes. The contradictory usage pattern reduces clarity.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool describes multiple symbols with pagination, and provides usage patterns that distinguish it from the sibling tool search-symbols. The workflow integrates the two tools effectively.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit usage patterns and a recommended workflow (search then describe). While it does not explicitly state when not to use the tool, the context is clear and the workflow provides guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search-symbolsSearch symbolsA

Search for symbols by name, tags, or description with fuzzy matching support.

Usage Patterns:

  • search_symbols(query: "auth") → finds auth-related symbols (paginated)

  • search_symbols(query: "create, user") → finds user creation symbols (paginated)

  • search_symbols(query: "") → returns all symbols (paginated)

  • search_symbols(query: "stats", symbolType: "function") → finds stats-related function symbols (paginated)

  • search_symbols(query: "stats", symbolType: "model") → finds stats-related model symbols (paginated)

  • search_symbols(query: "", symbolType: "function") → returns all function symbols (paginated)

  • search_symbols(query: "", symbolType: "model") → returns all model symbols (paginated)

  1. Search: search_symbols(query: "user creation") → get the IDs of the symbols that match the query and other symbols that are referenced by the matched symbols.

  2. Describe: describe_symbols( ids: [ "CreateUser@iam.function", "CreateUserRequest@iam.model", "CreateUserResponse@iam.model" ] )

  3. Analyze: Use the symbol's description, imports, example, fields, parameters, and return_type for instantiation and usage information.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of symbols to return (default: 25).
queryYesSearch terms for symbols (empty string returns all symbols).
offsetNoOffset for pagination (default: 0).
symbolTypeNoType of symbols to return (default: null, meaning all types).

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYesRepresents a paginated list of symbol summaries.

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Despite no annotations, the description discloses pagination behavior, fuzzy matching, and default values. It doesn't state read-only explicitly but is implied by the context. Leaves some room for more explicit safety cues.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Well-structured with sections and front-loaded purpose. However, the multiple example patterns could be condensed without losing clarity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers all key usage aspects: search functionality, pagination, filtering, and workflow integration with sibling tool. Output schema exists, so no need to detail return values.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 100% schema coverage, baseline is 3. The description adds numerous concrete examples demonstrating how parameters like query and symbolType behave, and clarifies syntax (e.g., comma-separated queries).

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Search for symbols by name, tags, or description with fuzzy matching support,' specifying the verb, resource, and distinguishing from the sibling tool 'describe-symbols'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit usage patterns and a recommended workflow that links this tool to its sibling, showing when to use search and when to use describe. It also implies alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 2 tool updatesv1.0.0
    • First observeddescribe-symbols
    • First observedsearch-symbols

TDQS

A4.1/5.0
Disambiguation5/5

The two tools have clearly distinct purposes: one for searching symbols by query, the other for describing specific symbols by ID. There is no overlap in functionality.

Naming Consistency5/5

Both tool names follow a consistent verb_noun pattern with hyphens (describe-symbols, search-symbols), making them predictable and easy to understand.

Tool Count3/5

With only 2 tools, the server is minimal but possibly sufficient for a focused SDK exploration workflow. The count is on the low end for a typical API surface, but the tools cover the essential search and describe operations.

Completeness4/5

The tools enable a complete workflow of searching for symbols and retrieving their details. The missing aspect could be a dedicated list or browse operation, but search with an empty query effectively serves that purpose. Minor gaps include lacking bulk operations or dependency resolution.

Maintenance

ActivitySlowing
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    Provides AI assistants with access to AegisX UI components, CRUD generator commands, development patterns, and API contract discovery tools. It enables developers to browse component documentation, build generation commands, and test authenticated API endpoints through the Model Context Protocol.
    21
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    Provides AI assistants with complete visibility into AL dependencies and symbols by exposing compiled .app files through the Model Context Protocol, enabling smart object discovery, deep code analysis, and reference tracking for Business Central development.
    6
    378
    80
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/AccelByte/ags-extend-sdk-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server