Asset Goes Here Docs Sign in
ContentsConnecting chat apps with MCP
Connect your tools

Connecting chat apps with MCP

agh runs a remote MCP server at https://app.assetgoeshere.com/mcp. A chat app that connects to it can claim requests, make the files with you, and deliver them for review, all inside the chat. Developers can also approve batches, review deliveries and publish from the chat. Each person signs in with their own agh account, so the app can only do what their project role allows.

Tools

ToolWhat it does
list_projectsThe projects you belong to.
whats_newWhat agh added lately, as on the web app's What's new page: only what this agent hasn't seen, or every entry with all. Signed in, like the other tools.
list_assetsRequests as short summaries, a page at a time: up to limit (50 unless set, at most 200), newest first or order: oldest, and a nextCursor to pass back as cursor for the next page; get_asset has the full brief, spec, notes and review note.
claim_next_requestClaim the oldest open request that matches, for two hours, or up to 30 days with holdHours.
claim_request, release_claimClaim one request by its exact id or renew your claim; give a claim back after a failed attempt.
deliver_fileDeliver a file from a ChatGPT chat, such as an image ChatGPT made or one you uploaded. ChatGPT passes a short-lived link to its own file storage.
start_upload, deliver_uploadDeliver a file on your own machine, such as a PNG Codex generated: upload it to the one-hour link, then deliver it. A Roblox model can bring a picture of itself: upload it with preview true and pass its id as previewUploadId. With attachment (the file's name), it uploads a file to post with a message instead.
deliver_textDeliver text the model wrote, such as strings or flavor text, or an SVG's markup (checked and saved as image/svg+xml). Other images and audio go through the upload tools.
set_placeholderAttach the placeholder the game uses until a request is fulfilled: a stand-in agh makes, the file at its path in the repository, or an upload. request_assets takes one per request too. See agh guide placeholders.
get_referenceA one-hour download link for a reference file a request's notes name, from agh or the project's repository.
request_assets, submit_batchFor agents: request assets and send them for approval.
request_revisionAsk for a new version of an asset that already has a file.
cancel_requestCancel a request you made that nobody has claimed yet, before or after approval, with an optional note. Developers can cancel any request nobody holds.
post_asset_messageWrite in an asset's conversation. With question true, the request is on hold until someone answers. attachments posts up to five files with it, each uploaded with start_upload and attachment.
remove_attachmentRemove a file you posted in a conversation, or any as an admin. The message stays.
get_inboxWhat waits for you: batches to approve, open requests, your claims, deliveries to review, assets to publish or waiting to merge.
send_feedbackSend a bug report or feedback about agh to the people who run it. Models are asked to use it when an agh tool fails or misleads them, and to tell you when they do.

For developers and admins:

ToolWhat it does
list_batches, get_batchBatches waiting for approval (status submitted), and the requests in one.
review_batchApprove or reject a batch, or approve only some requests (assetIds); the rest go back to the author with the note.
get_file_linkA one-hour download link for a delivery waiting for review (which pending), the current file, an earlier rejected attempt, or a translation's source (which source). With attachment, a file posted in the conversation.
get_stringsBeta. A text or strings file line by line, and a translation beside its source with its flags: missing keys, placeholders that differ, lines over max_length. See agh guide translations.
review_deliveryaccept (optionally correcting provenance and madeBy), reject with a note and a reason (misses-brief, or changes-brief with the new brief), or unaccept an acceptance that isn't in a pull request yet.
find_free_assetsSearch openly licensed sounds and images that allow commercial use (CC0, Public Domain Mark, CC BY, CC BY-SA) for a request (id) or by media and query. Every plan, with a daily allowance.
use_free_assetFill an image or audio request with a found item, recording its source and license. An agent suggests one for its own request before approval; remove takes it off.
scale_to_specScale a delivered image waiting for review down to its size spec, keeping a crop of the spec's shape or the centre; the original stays in its history. undo puts it back. Studio and Enterprise plans.
make_variantsMake smaller copies of an accepted image, or one waiting for review: variants, each with a name, format (webp, jpeg or png), longestEdge, quality and, for JPEG, a background. Each copy is an accepted asset in a set with the image. remake true remakes out-of-date variants, or the ones in names. Studio and Enterprise plans.
reduce_modelReduce a delivered .glb, .gltf, .fbx or .obj model waiting for review to a triangle target, or its triangles spec. Blender runs in the background; the reduced model then replaces the delivery and the original stays in its history. undo puts it back.
render_from_modelRender an accepted model to an open PNG image request: a single icon, or a sprite sheet of 4 or 8 directions by frames of an animation clip. The render is delivered to the request and waits for review. Studio and Enterprise plans.
plan_videoShow or set a narrated video request's scenes: for each line of its narration, a Library image or a title card, with its own motion and transition.
render_videoRender a narrated video from its scenes. The MP4 is delivered to the request and waits for review. Studio and Enterprise plans.
set_provenanceCorrect how an asset's file was made (provenance, madeBy), as agh mark --provenance does; for adopted files once you know.
change_briefChange an approved request's brief, spec or notes, with the reason; the old brief is kept.
publishSend accepted assets, or only assetIds, to the repository as one pull request. They're proposed until it merges.
check_publishingCheck that pull request: what still waits, what merged and what was closed without merging.
scan_repository, adopt_filesList the image and audio files already in the repository, and adopt ones agh doesn't track as published assets. Provenance stays unknown unless you say.
scan_roblox_references, adopt_roblox_assetsFind the Roblox asset ids the repository uses, and adopt assets already on Roblox by id: agh downloads each and keeps its Roblox id.

The file must match the request's file type: a .png request needs a PNG. The app asks before delivering, approving, accepting or publishing, and you can say no.

If something in agh goes wrong or gets in your way, ask the chat app to "send agh feedback about it", or report it yourself with agh feedback send. The people who build agh read every report.

Delivering needs your claim, or a request nobody else holds. A claim of yours that expired still delivers until someone else claims the request. Specs are advisory: for images, agh measures the size and alpha, and for audio the sample rate, bit depth, channels, integrated loudness and true peak when the spec asks for them, and lists any differences from the spec as specWarnings for the reviewer, without refusing the file.

What you need

The chat app registers itself with agh, so there is no client ID or secret to enter.

ChatGPT

ChatGPT connects to MCP servers as apps, which plugins can include.

1. In ChatGPT, open Settings → Apps (turn on developer mode under Advanced if creating an app is not offered). 2. Create an app. Name it "Asset Goes Here" and set the MCP server URL to https://app.assetgoeshere.com/mcp. 3. Choose OAuth for authentication and leave the client ID and secret empty. ChatGPT registers itself. 4. Save, then sign in with your agh email and password when ChatGPT asks. 5. In a chat, ask for something like "claim the next card art request in agh and make it". When you're happy with the image, say "deliver it".

A workspace admin can add the app to a plugin so others don't repeat these steps.

Claude

1. In Claude, open Settings → Connectors → Add custom connector. 2. Enter the URL https://app.assetgoeshere.com/mcp. Leave Advanced settings empty. 3. Connect, and sign in with your agh account.

Claude can deliver text, and SVG images it writes as markup, with deliver_text. To deliver other images it needs a file link from the chat, so for images use ChatGPT, agh openai, or the web page.

Other MCP clients

Any client that supports remote MCP servers with OAuth can connect. It finds the sign-in server through https://app.assetgoeshere.com/.well-known/oauth-protected-resource/mcp. It registers itself at https://app.assetgoeshere.com/oauth/register, which accepts ChatGPT's and Claude's callbacks and any loopback callback (http://127.0.0.1:<port>/… or http://localhost:<port>/…), which desktop clients such as Codex use. For a client with some other callback, whoever deploys agh adds it to mcpCallbackUrls in its stage settings. Coding agents with a shell, such as Codex, can also use the CLI instead (agh guide codex).

For agents: this page as Markdown is at /docs/mcp.md, and the CLI prints it with agh guide mcp.