AGS Extend SDK MCP Server
OfficialThe AGS Extend SDK MCP Server exposes Extend SDK functions and models as context to language models, enabling AI coding assistants to generate SDK code more effectively.
Core Capabilities:
Search SDK symbols - Find functions and models by name, tags, or description using fuzzy matching, with filtering by symbol type and pagination support
Get detailed symbol information - Retrieve comprehensive metadata for specific symbols including descriptions, usage examples, imports, field definitions, parameters, return types, OAuth scopes/permissions, parent/child relationships, and file locations
Create Extend app projects - Generate starter projects using the
create-extend-appprompt templateMulti-language support - Works with Go (default), C#, Java, and Python Extend SDKs via the
CONFIG_DIRenvironment variableFlexible deployment - Run via STDIO transport (local development), HTTP/Streamable HTTP transport (server deployments), or Docker containers
AI coding tool integration - Compatible with Cursor, Claude Desktop, Gemini CLI, and Visual Studio Code to provide SDK context during development
Recommended workflow: Search for symbols, describe selected symbols by ID, then analyze the detailed information for implementation.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@AGS Extend SDK MCP Serversearch for symbols related to user authentication"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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-appprompt
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.mdWorks 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).
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# |
|
Go |
|
Java |
|
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 HTTP400.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 vianpx, so you need Node.js 18+ withnpxavailable — verify withnpx --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)
Open Settings → Connectors → Add custom connector (under the "Customize" area).
Fill in Name:
extend-sdkand Remote MCP server URL: your<URL>from Step 1.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.jsonWindows:
%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@iamandUser@iamsymbols"
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-appprompt and follow the scenario / template / language completions.
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
Installation Guide — followed by the Quick Install prompt; readable on its own
Running Locally & Self-Hosting — Docker, environment variables, HTTP endpoints, development, and releasing the image
Postman Collection — import and Newman smoke-test instructions for
search-symbolsanddescribe-symbols
Contributions
This repository is published as-is. For bug reports and questions, please open an issue.
Available Tools
2 toolsdescribe-symbolsDescribe symbolsA
Describe multiple symbols with pagination.
Usage Patterns:
describe_symbols(limit: 100, offset: 0) → returns the first 100 symbols (paginated)
describe_symbols(ids: ["UserProfile@iam.model"]) → returns one symbol (paginated)
describe_symbols(ids: ["Store@platform.model", "PublishStore@platform.function"]) → returns multiple symbols (paginated)
Recommended Workflow:
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.
Describe: describe_symbols( ids: [ "CreateUser@iam.function", "CreateUserRequest@iam.model", "CreateUserResponse@iam.model" ] )
Analyze: Use the symbol's description, imports, example, fields, parameters, and return_type for instantiation and usage information.
| Name | Required | Description | Default |
|---|---|---|---|
| ids | Yes | List of symbol IDs used to fetch detailed information for each symbol. | |
| limit | No | Maximum number of symbols to return (default: 25). | |
| offset | No | Offset for pagination (default: 0). |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes | Represents a paginated list of symbols. |
TDQS
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.
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.
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.
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.
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.
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)
Recommended Workflow:
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.
Describe: describe_symbols( ids: [ "CreateUser@iam.function", "CreateUserRequest@iam.model", "CreateUserResponse@iam.model" ] )
Analyze: Use the symbol's description, imports, example, fields, parameters, and return_type for instantiation and usage information.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of symbols to return (default: 25). | |
| query | Yes | Search terms for symbols (empty string returns all symbols). | |
| offset | No | Offset for pagination (default: 0). | |
| symbolType | No | Type of symbols to return (default: null, meaning all types). |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes | Represents a paginated list of symbol summaries. |
TDQS
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.
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.
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.
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.
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.
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.
2 tool updates
v1.0.0- First observed
describe-symbols - First observed
search-symbols
TDQS
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.
Both tool names follow a consistent verb_noun pattern with hyphens (describe-symbols, search-symbols), making them predictable and easy to understand.
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.
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
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
Versioned documentation registry and semantic search for AI tools and coding assistants.
Provide your AI coding tools with token-efficient access to up-to-date technical documentation for…
@latest documentation and code examples to 9000+ libraries for LLMs and AI code editors in a singl…
Code intelligence for coding agents: semantic, AST, graph, and full-text search. 279+ languages.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to search documentation of packages and services to find implementation details, examples, and specifications.MIT

AGS API MCP Serverofficial
AlicenseNot gradedqualityAmaintenanceEnables AI assistants to interact with AccelByte Gaming Services APIs through semantic search, detailed API information retrieval, and authenticated API execution for game backend operations.Apache 2.0- AlicenseNot gradedqualityCmaintenanceProvides 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.21MIT
- AlicenseAqualityDmaintenanceProvides 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.637880MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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
