Customize Gyaanmitra
Marketplace
Install agents, MCP servers, and skills from the Gyaanmitra catalog, or from any URL you control.
What's in the catalog
The marketplace has three kinds of thing. Gyaanmitra installs each one in its own way:
Agents
A named persona with its own system prompt and permissions. A code
reviewer that can read but not edit, for example. It installs as a
markdown file under agents/.
MCP servers
Tools the agent can call: a database, a browser, an issue tracker.
Installs as an entry in your gyaanmitra.json.
Skills
Short instructions the agent loads when they matter, such as the
conventions for one framework. Installs as a SKILL.md.
Installing
Open the marketplace
Open the Gyaanmitra AI panel, then Settings → Marketplace. Filter by kind and category, or search names and descriptions.
Choose a scope
Project installs into .gyaanmitra/ in the current workspace. You can
commit it, so your team gets it too. Global installs into your user
config and follows you between projects.
Fill in any parameters
An MCP server that needs a token or a connection string asks for it when you install. What you type is written to your own config. It is never sent to Gyaanmitra.
You can also install from a URL that points at a catalog file. Use that for anything private, such as an internal MCP server or a house style guide you do not want to publish. JSON and YAML catalogs both work.
An MCP server runs on your machine
Installing an MCP server means Gyaanmitra will start it as a local process, with your permissions. Catalog listings are reviewed, and they may only use a small set of launchers. A server you install from an arbitrary URL is not reviewed. Treat that the same way you would treat running any other program.
Submitting to the catalog
Submissions are reviewed before they are published. An approved MCP listing becomes a command line on other people's machines.
Sign in
You need a Gyaanmitra account to submit, so a listing has an owner who can update it later.
POST your listing
Send it to /api/marketplace/submissions/ with your Gyaanmitra ID token as a
bearer. Every listing needs an id, name, description, category, and
a content shaped for its kind.
Wait for review
GET /api/marketplace/submissions/ shows your submissions and their status.
A reviewer approves it and publishes it to the catalog, or rejects it
with a note.
The shape of content
This differs per kind. A mismatch is rejected when you submit:
| Kind | content |
|---|---|
mcp | A JSON string holding command and args, or a remote url |
agent | An object with mode, description, and prompt |
skill | Inline SKILL.md markdown, or an https:// link to one |
An mcp listing must launch through one of npx, uvx, uv, node,
python, docker, bunx, or deno. Its command and arguments may not
contain shell metacharacters. Parameter values your users type are escaped
by Gyaanmitra at install time. The template you submit is not, which is why
it is constrained.
Use ${PLACEHOLDER} or {{PLACEHOLDER}} in the template for anything the
user has to supply, and describe each one in parameters so the install
dialog can ask for it:
{
"type": "mcp",
"id": "acme-mcp",
"name": "Acme",
"description": "Query Acme projects and issues.",
"category": "productivity",
"url": "https://github.com/acme/mcp-server",
"content": "{ \"command\": \"npx\", \"args\": [\"-y\", \"@acme/mcp-server\"], \"env\": { \"ACME_TOKEN\": \"${ACME_TOKEN}\" } }",
"parameters": [
{ "name": "Acme API token", "key": "ACME_TOKEN", "placeholder": "acme_pat_..." }
]
}Ids are part of the install path
An id becomes a filename, so it is limited to letters, digits, -, _,
@, and .. If you submit an id you already own, that listing is updated
and sent back for review. It does not create a second listing.