@kintone/mcp-server 1.5.0 → 1.6.0

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/CHANGELOG.md CHANGED
@@ -1,5 +1,12 @@
1
1
  # Changelog
2
2
 
3
+ ## [1.6.0](https://github.com/kintone/mcp-server/compare/1.5.0...1.6.0) (2026-06-23)
4
+
5
+
6
+ ### Features
7
+
8
+ * add get space tool ([#435](https://github.com/kintone/mcp-server/issues/435)) ([24fe1a9](https://github.com/kintone/mcp-server/commit/24fe1a9a64e2cacd2dfd8e58baf6f8c5f36faa90))
9
+
3
10
  ## [1.5.0](https://github.com/kintone/mcp-server/compare/1.4.0...1.5.0) (2026-06-02)
4
11
 
5
12
 
package/README.md CHANGED
@@ -215,6 +215,7 @@ export HTTPS_PROXY="http://username:password@proxy.example.com:8080"
215
215
  | `kintone-deploy-app` | アプリ設定を運用環境へ反映 |
216
216
  | `kintone-update-general-settings` | アプリの一般設定を変更 |
217
217
  | `kintone-download-file` | 添付ファイルフィールドのファイルを保存 |
218
+ | `kintone-get-space` | スペースの情報を取得 |
218
219
 
219
220
  ## ドキュメント
220
221
 
@@ -0,0 +1 @@
1
+ export { spaceSchema } from "./space.js";
@@ -0,0 +1,75 @@
1
+ import { z } from "zod";
2
+ const userRefSchema = z.object({
3
+ code: z.string().describe("User login name (unique identifier)"),
4
+ name: z.string().describe("Display name of the user"),
5
+ });
6
+ const permissionsSchema = z.object({
7
+ createApp: z
8
+ .enum(["EVERYONE", "ADMIN"])
9
+ .describe("Who may create apps in this space: EVERYONE (any member) or ADMIN (space administrators only)"),
10
+ });
11
+ const attachedAppSchema = z.object({
12
+ threadId: z
13
+ .string()
14
+ .nullable()
15
+ .describe("Thread ID where the app is placed; null when not associated with a thread per API response"),
16
+ appId: z.string().describe("Numeric app ID as string"),
17
+ code: z.string().describe("App code (unique string)"),
18
+ name: z.string().describe("App name"),
19
+ description: z.string().describe("App description"),
20
+ createdAt: z.string().describe("App creation datetime (ISO 8601)"),
21
+ creator: userRefSchema.describe("User who created the app"),
22
+ modifiedAt: z.string().describe("App last modified datetime (ISO 8601)"),
23
+ modifier: userRefSchema.describe("User who last modified the app"),
24
+ });
25
+ export const spaceSchema = z.object({
26
+ id: z.string().describe("The space ID"),
27
+ name: z.string().describe("The space name"),
28
+ defaultThread: z
29
+ .string()
30
+ .describe("Thread ID of the default thread in this space"),
31
+ isPrivate: z.boolean().describe("Whether the space is private"),
32
+ creator: userRefSchema.describe("User who created the space"),
33
+ modifier: userRefSchema.describe("User who last modified the space"),
34
+ memberCount: z
35
+ .string()
36
+ .describe("Member count returned by the API (stringified number)"),
37
+ coverType: z
38
+ .enum(["BLOB", "PRESET"])
39
+ .describe("Cover image type: BLOB (custom upload) or PRESET (preset image)"),
40
+ coverKey: z.string().describe("Key of the cover image"),
41
+ coverUrl: z.string().describe("URL of the cover image"),
42
+ body: z
43
+ .string()
44
+ .nullable()
45
+ .describe("HTML body of the space portal; null when the portal has no content"),
46
+ useMultiThread: z.boolean().describe("Whether multiple threads are enabled"),
47
+ isGuest: z.boolean().describe("Whether the space is a guest space"),
48
+ attachedApps: z
49
+ .array(attachedAppSchema)
50
+ .describe("Apps attached to this space"),
51
+ fixedMember: z
52
+ .boolean()
53
+ .describe("Whether users are blocked from joining or leaving on their own"),
54
+ showAnnouncement: z
55
+ .boolean()
56
+ .nullable()
57
+ .describe("Announcement widget visibility; null for single-thread spaces where not applicable"),
58
+ showThreadList: z
59
+ .boolean()
60
+ .nullable()
61
+ .describe("Thread list widget visibility; null for single-thread spaces where not applicable"),
62
+ showAppList: z
63
+ .boolean()
64
+ .nullable()
65
+ .describe("App list widget visibility; null for single-thread spaces where not applicable"),
66
+ showMemberList: z
67
+ .boolean()
68
+ .nullable()
69
+ .describe("Member list widget visibility; null for single-thread spaces where not applicable"),
70
+ showRelatedLinkList: z
71
+ .boolean()
72
+ .nullable()
73
+ .describe("Related apps and spaces widget visibility; null for single-thread spaces where not applicable"),
74
+ permissions: permissionsSchema.describe("Space permission settings"),
75
+ });
@@ -1,7 +1,12 @@
1
1
  const filterRules = [
2
2
  {
3
3
  condition: (condition) => condition.isApiTokenAuth,
4
- excludeTools: ["kintone-get-apps", "kintone-add-app", "kintone-search"],
4
+ excludeTools: [
5
+ "kintone-get-apps",
6
+ "kintone-add-app",
7
+ "kintone-search",
8
+ "kintone-get-space",
9
+ ],
5
10
  },
6
11
  ];
7
12
  export function shouldEnableTool(toolName, condition) {
@@ -20,6 +20,7 @@ import { addApp } from "./kintone/app/add-app.js";
20
20
  import { deployApp } from "./kintone/app/deploy-app.js";
21
21
  import { updateGeneralSettings } from "./kintone/app/update-general-settings.js";
22
22
  import { downloadFile } from "./kintone/file/download-file.js";
23
+ import { getSpace } from "./kintone/space/get-space.js";
23
24
  import { search } from "./kintone/search/search.js";
24
25
  export { createToolCallback } from "./factory.js";
25
26
  export const tools = [
@@ -45,5 +46,6 @@ export const tools = [
45
46
  deployApp,
46
47
  updateGeneralSettings,
47
48
  downloadFile,
49
+ getSpace,
48
50
  search,
49
51
  ];
@@ -0,0 +1,56 @@
1
+ import { z } from "zod";
2
+ import { createTool } from "../../factory.js";
3
+ import { spaceSchema } from "../../../schema/space/index.js";
4
+ const inputSchema = {
5
+ id: z
6
+ .string()
7
+ .describe("Space ID as returned by Kintone (numeric string). Same value as in space URLs and other Space APIs."),
8
+ };
9
+ const outputSchema = spaceSchema.shape;
10
+ const toolName = "kintone-get-space";
11
+ const toolDescription = "Retrieve a kintone space via the Space REST API (GET /k/v1/space.json). " +
12
+ "Read-only: returns metadata and portal content such as name, default thread, privacy, HTML body, cover image, " +
13
+ "widget visibility, member count, attached apps, and who may create apps (EVERYONE vs ADMIN). " +
14
+ "Requires permission to view the target space. Does not modify any space configuration.";
15
+ const toolConfig = {
16
+ title: "Get Space",
17
+ description: toolDescription,
18
+ inputSchema,
19
+ outputSchema,
20
+ };
21
+ const callback = async ({ id }, { client }) => {
22
+ const space = await client.space.getSpace({ id });
23
+ const result = {
24
+ id: space.id,
25
+ name: space.name,
26
+ defaultThread: space.defaultThread,
27
+ isPrivate: space.isPrivate,
28
+ creator: space.creator,
29
+ modifier: space.modifier,
30
+ memberCount: space.memberCount,
31
+ coverType: space.coverType,
32
+ coverKey: space.coverKey,
33
+ coverUrl: space.coverUrl,
34
+ body: space.body,
35
+ useMultiThread: space.useMultiThread,
36
+ isGuest: space.isGuest,
37
+ attachedApps: space.attachedApps,
38
+ fixedMember: space.fixedMember,
39
+ showAnnouncement: space.showAnnouncement,
40
+ showThreadList: space.showThreadList,
41
+ showAppList: space.showAppList,
42
+ showMemberList: space.showMemberList,
43
+ showRelatedLinkList: space.showRelatedLinkList,
44
+ permissions: space.permissions,
45
+ };
46
+ return {
47
+ structuredContent: result,
48
+ content: [
49
+ {
50
+ type: "text",
51
+ text: JSON.stringify(result, null, 2),
52
+ },
53
+ ],
54
+ };
55
+ };
56
+ export const getSpace = createTool(toolName, toolConfig, callback);
package/dist/version.js CHANGED
@@ -1,2 +1,2 @@
1
1
  // This file is auto-generated. Do not edit manually.
2
- export const version = "1.5.0"; // x-release-please-version
2
+ export const version = "1.6.0"; // x-release-please-version
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kintone/mcp-server",
3
- "version": "1.5.0",
3
+ "version": "1.6.0",
4
4
  "description": "The official MCP Server for kintone",
5
5
  "keywords": [
6
6
  "kintone",
@@ -43,16 +43,16 @@
43
43
  "@cybozu/eslint-config": "25.0.1",
44
44
  "@cybozu/license-manager": "1.4.1",
45
45
  "@modelcontextprotocol/inspector": "0.18.0",
46
- "@types/node": "22.19.19",
47
- "doctoc": "2.4.1",
46
+ "@types/node": "22.20.0",
47
+ "doctoc": "2.5.0",
48
48
  "eslint": "9.39.4",
49
49
  "eslint-plugin-package-json": "0.88.3",
50
50
  "globals": "17.6.0",
51
- "npm": "11.16.0",
52
- "prettier": "3.8.3",
53
- "tsx": "4.22.3",
51
+ "npm": "11.17.0",
52
+ "prettier": "3.8.4",
53
+ "tsx": "4.22.4",
54
54
  "typescript": "5.9.3",
55
- "vitest": "4.1.7"
55
+ "vitest": "4.1.9"
56
56
  },
57
57
  "engines": {
58
58
  "node": ">= 22"