@idosgames/mcp 0.1.33 → 0.1.34
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +12 -1
- package/dist/cli.js +40 -3
- package/package.json +5 -5
- package/registry/index.json +1 -1
package/README.md
CHANGED
|
@@ -46,4 +46,15 @@ Tools **return** content; the agent writes files into its own project (standard
|
|
|
46
46
|
typical flow: `get_host_scaffold` → write to root → `get_module {id}` for each chosen module → write
|
|
47
47
|
to `src/modules/{id}/` and register in `src/modules.ts` → install `get_manifest` versions.
|
|
48
48
|
|
|
49
|
-
|
|
49
|
+
## The second iDos Games server
|
|
50
|
+
|
|
51
|
+
This server serves game **code**. A Title's live **data** — its configuration, AI-generated assets, the
|
|
52
|
+
publisher's task board and build uploads — is a separate hosted server:
|
|
53
|
+
`https://site.idosgames.com/api/v2/mcp` (Streamable HTTP, OAuth 2.1; connect it with no headers — the
|
|
54
|
+
first tool call starts the sign-in). Both are listed at
|
|
55
|
+
[github.com/iDos-Games/idosgames-mcp](https://github.com/iDos-Games/idosgames-mcp) and documented at
|
|
56
|
+
[idosgames.com/mcp](https://idosgames.com/mcp).
|
|
57
|
+
|
|
58
|
+
## License
|
|
59
|
+
|
|
60
|
+
MIT
|
package/dist/cli.js
CHANGED
|
@@ -45,14 +45,26 @@ function moduleExportName(id) {
|
|
|
45
45
|
}
|
|
46
46
|
|
|
47
47
|
// src/server.ts
|
|
48
|
+
var SERVER_VERSION = true ? "0.1.34" : "0.0.0-dev";
|
|
49
|
+
var readOnly = (title) => ({
|
|
50
|
+
title,
|
|
51
|
+
readOnlyHint: true,
|
|
52
|
+
destructiveHint: false,
|
|
53
|
+
idempotentHint: true,
|
|
54
|
+
openWorldHint: false
|
|
55
|
+
});
|
|
48
56
|
var TOOLS = [
|
|
49
57
|
{
|
|
50
58
|
name: "list_modules",
|
|
59
|
+
title: "List game modules",
|
|
60
|
+
annotations: readOnly("List game modules"),
|
|
51
61
|
description: "List the composable iDosGames modules in the catalog. Each entry has id, name, type (template = a complete ready-to-run game to start FROM, e.g. voxelcraft; feature = a capability to add on top), engine, genre, a short summary, what it 'provides' (its features), tags, preview media, a live demo url, and its dependency count. Read 'provides' to reuse a ready module instead of building the feature from scratch, then get_module to pull its source. Entries may also carry 'sharedUi' ({provides, requires, drawsOwn}: shared chrome roles currency-bar | wallet | status | account | menu | modes \u2014 the project's base (sign-in + the lobby, see get_host_scaffold) provides currency-bar, wallet, account, menu and modes, and a game hides its own copies automatically) and 'inBase' (true: a system installed with the base in every new project \u2014 only profile, inventory, invite, friends and quests; its screen is a tab of the lobby; every other system is added only when the app needs it) and 'uses' (a game's modules: install them together with the game) and 'events' ({emits: [{topic, when, payload}], listens: [{topic, why}]}). To react to another module's event, copy its payload descriptor into your own defineTopic(topic, shape(payload)) \u2014 never import another module.",
|
|
52
62
|
inputSchema: { type: "object", properties: {} }
|
|
53
63
|
},
|
|
54
64
|
{
|
|
55
65
|
name: "get_module",
|
|
66
|
+
title: "Get module source",
|
|
67
|
+
annotations: readOnly("Get module source"),
|
|
56
68
|
description: "Get one module's full source (a map of files) plus install instructions. Write each file under src/modules/{id}/, install its dependencies, and register it in src/modules.ts. Requires a host scaffold in the project (see get_host_scaffold). Its module.ts declares 'sharedUi' (roles it draws for every mode or needs) and its module.meta.json declares 'events' (topics it emits with their payload shapes, and topics it listens to).",
|
|
57
69
|
inputSchema: {
|
|
58
70
|
type: "object",
|
|
@@ -64,11 +76,15 @@ var TOOLS = [
|
|
|
64
76
|
},
|
|
65
77
|
{
|
|
66
78
|
name: "list_skills",
|
|
79
|
+
title: "List SDK skills",
|
|
80
|
+
annotations: readOnly("List SDK skills"),
|
|
67
81
|
description: "List available skills (name + description). Skills are instructions for working with @idosgames/core services, the module contract, and composition. Use get_skill to load one.",
|
|
68
82
|
inputSchema: { type: "object", properties: {} }
|
|
69
83
|
},
|
|
70
84
|
{
|
|
71
85
|
name: "get_skill",
|
|
86
|
+
title: "Get SDK skill",
|
|
87
|
+
annotations: readOnly("Get SDK skill"),
|
|
72
88
|
description: "Get one skill's full SKILL.md content and its reference files. Load the relevant skill before writing code against that part of the SDK.",
|
|
73
89
|
inputSchema: {
|
|
74
90
|
type: "object",
|
|
@@ -83,16 +99,22 @@ var TOOLS = [
|
|
|
83
99
|
},
|
|
84
100
|
{
|
|
85
101
|
name: "get_host_scaffold",
|
|
102
|
+
title: "Get project scaffold",
|
|
103
|
+
annotations: readOnly("Get project scaffold"),
|
|
86
104
|
description: "Get the base every NEW project starts from \u2014 the host shell with sign-in and the lobby (index.html, main.tsx, src/app.config.ts, the wallet files, empty src/modules.ts, config; the lobby and sign-in come from @idosgames/app-shell). Write these to the project root, then add modules with get_module: the systems with inBase (profile, inventory, invite, friends, quests, mailbox), the game(s) with the modules each game 'uses', and any other system the app needs.",
|
|
87
105
|
inputSchema: { type: "object", properties: {} }
|
|
88
106
|
},
|
|
89
107
|
{
|
|
90
108
|
name: "get_manifest",
|
|
109
|
+
title: "Get runtime package versions",
|
|
110
|
+
annotations: readOnly("Get runtime package versions"),
|
|
91
111
|
description: "Get the @idosgames runtime packages and their exact versions (core, wallet, module-sdk, react, app-shell). Install these so a seeded host/module resolves its imports.",
|
|
92
112
|
inputSchema: { type: "object", properties: {} }
|
|
93
113
|
},
|
|
94
114
|
{
|
|
95
115
|
name: "search",
|
|
116
|
+
title: "Search modules and skills",
|
|
117
|
+
annotations: readOnly("Search modules and skills"),
|
|
96
118
|
description: "Keyword search across modules and skills. Matches a module on its id, name, type, engine, genre, summary, description, what it 'provides', and tags \u2014 so you can find a ready module by the feature you need (e.g. 'dice board', 'idle income', 'voxel building') rather than by name. Skills match on name and description. Returns the matching catalog entries.",
|
|
97
119
|
inputSchema: {
|
|
98
120
|
type: "object",
|
|
@@ -122,14 +144,29 @@ var SERVER_INSTRUCTIONS = [
|
|
|
122
144
|
"(image / audio / 3D / video / text), that is a SEPARATE server \u2014 the iDosGames Title-configuration MCP:",
|
|
123
145
|
"HTTP JSON-RPC at POST https://site.idosgames.com/api/v2/mcp, tools get_<field> / save_<field>",
|
|
124
146
|
"and generate_*. Authorization is OAuth 2.1: connect it as a plain HTTP MCP server with NO headers",
|
|
125
|
-
"and no API key \u2014
|
|
126
|
-
"
|
|
147
|
+
"and no API key \u2014 initialize and tools/list need no sign-in; the first tool call answers 401, and the",
|
|
148
|
+
"client discovers the authorization server from that challenge, registers itself, and opens a browser",
|
|
149
|
+
"where the publisher picks the Titles and permissions to grant.",
|
|
127
150
|
'.mcp.json: {"idosgames-title": {"type": "http", "url": "https://site.idosgames.com/api/v2/mcp"}}.',
|
|
128
151
|
"Rule of thumb: game CODE \u2192 this server; a Title's live config DATA and generated ASSETS \u2192 the backend v2/mcp server."
|
|
129
152
|
].join(" ");
|
|
130
153
|
function createServer() {
|
|
131
154
|
const server = new Server(
|
|
132
|
-
{
|
|
155
|
+
{
|
|
156
|
+
// `name` matches the Official MCP Registry entry (com.idosgames/sdk); `title`, `websiteUrl` and
|
|
157
|
+
// `icons` are what catalogs and clients show. The version is the package's own (tsup `define`).
|
|
158
|
+
name: "idosgames-sdk",
|
|
159
|
+
title: "iDos Games SDK",
|
|
160
|
+
version: SERVER_VERSION,
|
|
161
|
+
websiteUrl: "https://idosgames.com/mcp",
|
|
162
|
+
icons: [
|
|
163
|
+
{
|
|
164
|
+
src: "https://idosgames.com/images/logo512.png",
|
|
165
|
+
mimeType: "image/png",
|
|
166
|
+
sizes: ["512x512"]
|
|
167
|
+
}
|
|
168
|
+
]
|
|
169
|
+
},
|
|
133
170
|
{ capabilities: { tools: {} }, instructions: SERVER_INSTRUCTIONS }
|
|
134
171
|
);
|
|
135
172
|
server.setRequestHandler(ListToolsRequestSchema, async () => ({
|
package/package.json
CHANGED
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@idosgames/mcp",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.34",
|
|
4
|
+
"mcpName": "com.idosgames/sdk",
|
|
4
5
|
"description": "MCP server that serves the iDosGames Module & Skills Registry to AI coding agents (Claude Code, Codex, Cursor…): list/pull composable game modules and the host scaffold, and load skills for @idosgames/core, the module contract, and composition.",
|
|
5
6
|
"type": "module",
|
|
6
7
|
"license": "MIT",
|
|
7
8
|
"author": "iDos Games",
|
|
8
|
-
"homepage": "https://github.com/iDos-Games/
|
|
9
|
+
"homepage": "https://github.com/iDos-Games/idosgames-mcp#readme",
|
|
9
10
|
"repository": {
|
|
10
11
|
"type": "git",
|
|
11
|
-
"url": "git+https://github.com/iDos-Games/
|
|
12
|
-
"directory": "packages/mcp"
|
|
12
|
+
"url": "git+https://github.com/iDos-Games/idosgames-mcp.git"
|
|
13
13
|
},
|
|
14
14
|
"bugs": {
|
|
15
|
-
"url": "https://github.com/iDos-Games/
|
|
15
|
+
"url": "https://github.com/iDos-Games/idosgames-mcp/issues"
|
|
16
16
|
},
|
|
17
17
|
"keywords": [
|
|
18
18
|
"idosgames",
|
package/registry/index.json
CHANGED