Skip to content

Commit 957b18a

Browse files
authored
Drop indent=2 from JSON responses to reduce token usage (#34)
1 parent 59e38a3 commit 957b18a

16 files changed

Lines changed: 50 additions & 50 deletions

src/nc_mcp_server/tools/activity.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -124,4 +124,4 @@ async def get_activity(
124124
"since": next_since,
125125
},
126126
}
127-
return json.dumps(response, indent=2, default=str)
127+
return json.dumps(response, default=str)

src/nc_mcp_server/tools/announcements.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ async def list_announcements(offset: int = 0) -> str:
7171
"has_more": len(announcements) == page_limit,
7272
},
7373
}
74-
return json.dumps(result, indent=2, default=str)
74+
return json.dumps(result, default=str)
7575

7676

7777
def _register_write_tools(mcp: FastMCP) -> None:
@@ -125,7 +125,7 @@ async def create_announcement(
125125
"comments": 1 if comments else 0,
126126
}
127127
data = await client.ocs_post(ANNOUNCEMENTS_API, data=post_data)
128-
return json.dumps(_format_announcement(data), indent=2, default=str)
128+
return json.dumps(_format_announcement(data), default=str)
129129

130130

131131
def _register_destructive_tools(mcp: FastMCP) -> None:

src/nc_mcp_server/tools/app_management.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ async def list_apps(app_filter: str = "enabled") -> str:
4545
client = get_client()
4646
params = {} if app_filter == "all" else {"filter": app_filter}
4747
data = await client.ocs_get(APPS_API, params=params)
48-
return json.dumps(data["apps"], indent=2)
48+
return json.dumps(data["apps"])
4949

5050
@mcp.tool(annotations=READONLY)
5151
@require_permission(PermissionLevel.READ)
@@ -63,7 +63,7 @@ async def get_app_info(app_id: str) -> str:
6363
"""
6464
client = get_client()
6565
data = await client.ocs_get(f"{APPS_API}/{app_id}")
66-
return json.dumps(_format_app(data), indent=2, default=str)
66+
return json.dumps(_format_app(data), default=str)
6767

6868

6969
def _register_write_tools(mcp: FastMCP) -> None:

src/nc_mcp_server/tools/calendar.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -358,7 +358,7 @@ async def list_calendars() -> str:
358358
context="List calendars",
359359
)
360360
calendars = _parse_calendars_xml(response.text or "", user)
361-
return json.dumps(calendars, indent=2)
361+
return json.dumps(calendars)
362362

363363
@mcp.tool(annotations=READONLY)
364364
@require_permission(PermissionLevel.READ)
@@ -410,7 +410,7 @@ async def get_events(
410410
event = _format_event(ical_data)
411411
event["etag"] = etag
412412
events.append(event)
413-
return json.dumps(events, indent=2)
413+
return json.dumps(events)
414414

415415
@mcp.tool(annotations=READONLY)
416416
@require_permission(PermissionLevel.READ)
@@ -428,7 +428,7 @@ async def get_event(calendar_id: str, event_uid: str) -> str:
428428
_href, etag, ical_data = await _find_event(calendar_id, event_uid)
429429
event = _format_event(ical_data)
430430
event["etag"] = etag
431-
return json.dumps(event, indent=2)
431+
return json.dumps(event)
432432

433433

434434
def _register_create_event(mcp: FastMCP) -> None:
@@ -490,7 +490,7 @@ async def create_event(
490490
headers={"Content-Type": "text/calendar; charset=utf-8"},
491491
context=f"Create event in '{calendar_id}'",
492492
)
493-
return json.dumps({"uid": uid, "summary": summary}, indent=2)
493+
return json.dumps({"uid": uid, "summary": summary})
494494

495495

496496
def _register_update_event(mcp: FastMCP) -> None:

src/nc_mcp_server/tools/collectives.py

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ async def list_collectives() -> str:
5454
client = get_client()
5555
data = await client.ocs_get(f"{API}/collectives")
5656
collectives = [_format_collective(c) for c in data["collectives"]]
57-
return json.dumps(collectives, indent=2, default=str)
57+
return json.dumps(collectives, default=str)
5858

5959
@mcp.tool(annotations=READONLY)
6060
@require_permission(PermissionLevel.READ)
@@ -73,7 +73,7 @@ async def get_collective_pages(collective_id: int) -> str:
7373
client = get_client()
7474
data = await client.ocs_get(f"{API}/collectives/{collective_id}/pages")
7575
pages = [_format_page(p) for p in data["pages"]]
76-
return json.dumps(pages, indent=2, default=str)
76+
return json.dumps(pages, default=str)
7777

7878
@mcp.tool(annotations=READONLY)
7979
@require_permission(PermissionLevel.READ)
@@ -92,7 +92,7 @@ async def get_collective_page(collective_id: int, page_id: int) -> str:
9292
client = get_client()
9393
data = await client.ocs_get(f"{API}/collectives/{collective_id}/pages/{page_id}")
9494
page = data["page"]
95-
return json.dumps(_format_page(page), indent=2, default=str)
95+
return json.dumps(_format_page(page), default=str)
9696

9797

9898
def _register_write_tools(mcp: FastMCP) -> None:
@@ -119,7 +119,7 @@ async def create_collective(name: str, emoji: str | None = None) -> str:
119119
post_data["emoji"] = emoji
120120
data = await client.ocs_post_json(f"{API}/collectives", json_data=post_data)
121121
collective = data["collective"]
122-
return json.dumps(_format_collective(collective), indent=2, default=str)
122+
return json.dumps(_format_collective(collective), default=str)
123123

124124
@mcp.tool(annotations=ADDITIVE)
125125
@require_permission(PermissionLevel.WRITE)
@@ -147,7 +147,7 @@ async def create_collective_page(collective_id: int, parent_id: int, title: str)
147147
json_data={"title": title},
148148
)
149149
page = data["page"]
150-
return json.dumps(_format_page(page), indent=2, default=str)
150+
return json.dumps(_format_page(page), default=str)
151151

152152

153153
def _register_destructive_tools(mcp: FastMCP) -> None:
@@ -184,7 +184,7 @@ async def restore_collective(collective_id: int) -> str:
184184
client = get_client()
185185
data = await client.ocs_patch(f"{API}/collectives/trash/{collective_id}")
186186
collective = data["collective"]
187-
return json.dumps(_format_collective(collective), indent=2, default=str)
187+
return json.dumps(_format_collective(collective), default=str)
188188

189189
@mcp.tool(annotations=DESTRUCTIVE)
190190
@require_permission(PermissionLevel.DESTRUCTIVE)
@@ -239,7 +239,7 @@ async def restore_collective_page(collective_id: int, page_id: int) -> str:
239239
client = get_client()
240240
data = await client.ocs_patch(f"{API}/collectives/{collective_id}/pages/trash/{page_id}")
241241
page = data["page"]
242-
return json.dumps(_format_page(page), indent=2, default=str)
242+
return json.dumps(_format_page(page), default=str)
243243

244244
@mcp.tool(annotations=DESTRUCTIVE)
245245
@require_permission(PermissionLevel.DESTRUCTIVE)

src/nc_mcp_server/tools/comments.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -134,7 +134,7 @@ async def list_comments(file_id: int, limit: int = 20, offset: int = 0) -> str:
134134
"has_more": len(comments) == limit,
135135
},
136136
}
137-
return json.dumps(response_data, indent=2, default=str)
137+
return json.dumps(response_data, default=str)
138138

139139

140140
def _register_write_tools(mcp: FastMCP) -> None:
@@ -168,7 +168,7 @@ async def add_comment(file_id: int, message: str) -> str:
168168
)
169169
location = str(response.headers.get("Content-Location", ""))
170170
comment_id = location.rstrip("/").split("/")[-1] if location else "unknown"
171-
return json.dumps({"id": comment_id, "message": message}, indent=2)
171+
return json.dumps({"id": comment_id, "message": message})
172172

173173
@mcp.tool(annotations=ADDITIVE_IDEMPOTENT)
174174
@require_permission(PermissionLevel.WRITE)
@@ -204,7 +204,7 @@ async def edit_comment(file_id: int, comment_id: int, message: str) -> str:
204204
headers={"Content-Type": "application/xml; charset=utf-8"},
205205
context=f"Edit comment {comment_id} on file {file_id}",
206206
)
207-
return json.dumps({"id": comment_id, "message": message}, indent=2)
207+
return json.dumps({"id": comment_id, "message": message})
208208

209209

210210
def _register_destructive_tools(mcp: FastMCP) -> None:

src/nc_mcp_server/tools/files.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ async def list_directory(path: str = "/") -> str:
7676
# First entry is the directory itself — skip it
7777
if entries and entries[0]["path"].rstrip("/") == path.strip("/"):
7878
entries = entries[1:]
79-
return json.dumps(entries, indent=2, default=str)
79+
return json.dumps(entries, default=str)
8080

8181
@mcp.tool(annotations=READONLY)
8282
@require_permission(PermissionLevel.READ)
@@ -158,7 +158,7 @@ async def search_files(
158158
"has_more": len(results) == limit,
159159
},
160160
}
161-
return json.dumps(response_data, indent=2, default=str)
161+
return json.dumps(response_data, default=str)
162162

163163

164164
def _register_write_tools(mcp: FastMCP) -> None:

src/nc_mcp_server/tools/mail.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,7 @@ async def list_mail_accounts() -> str:
100100
client = get_client()
101101
data = await client.ocs_get(f"{MAIL_OCS}/account/list")
102102
accounts = [_format_account(a) for a in data]
103-
return json.dumps(accounts, indent=2)
103+
return json.dumps(accounts)
104104

105105
@mcp.tool(annotations=READONLY)
106106
@require_permission(PermissionLevel.READ)
@@ -119,7 +119,7 @@ async def list_mailboxes(account_id: int) -> str:
119119
client = get_client()
120120
data = await client.ocs_get(f"{MAIL_OCS}/ocs/mailboxes", params={"accountId": str(account_id)})
121121
mailboxes = [_format_mailbox(mb) for mb in data]
122-
return json.dumps(mailboxes, indent=2)
122+
return json.dumps(mailboxes)
123123

124124
@mcp.tool(annotations=READONLY)
125125
@require_permission(PermissionLevel.READ)
@@ -153,7 +153,7 @@ async def list_mail_messages(mailbox_id: int, limit: int = 20, cursor: int | Non
153153
if messages:
154154
pagination["next_cursor"] = min(m["id"] for m in messages)
155155
result: dict[str, Any] = {"data": messages, "pagination": pagination}
156-
return json.dumps(result, indent=2)
156+
return json.dumps(result)
157157

158158
@mcp.tool(annotations=READONLY)
159159
@require_permission(PermissionLevel.READ)
@@ -171,7 +171,7 @@ async def get_mail_message(message_id: int) -> str:
171171
"""
172172
client = get_client()
173173
data = await client.ocs_get(f"{MAIL_OCS}/message/{message_id}")
174-
return json.dumps(_format_message_full(data), indent=2)
174+
return json.dumps(_format_message_full(data))
175175

176176

177177
def _register_write_tools(mcp: FastMCP) -> None:

src/nc_mcp_server/tools/notifications.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ async def list_notifications() -> str:
2828
data = await client.ocs_get(
2929
"apps/notifications/api/v2/notifications",
3030
)
31-
return json.dumps(data, indent=2, default=str)
31+
return json.dumps(data, default=str)
3232

3333
@mcp.tool(annotations=DESTRUCTIVE)
3434
@require_permission(PermissionLevel.DESTRUCTIVE)

src/nc_mcp_server/tools/shares.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ async def list_shares(
7070
params["subfiles"] = "true"
7171
data = await client.ocs_get(SHARES_API, params=params)
7272
shares = [_format_share(s) for s in data]
73-
return json.dumps(shares, indent=2, default=str)
73+
return json.dumps(shares, default=str)
7474

7575
@mcp.tool(annotations=READONLY)
7676
@require_permission(PermissionLevel.READ)
@@ -87,7 +87,7 @@ async def get_share(share_id: int) -> str:
8787
client = get_client()
8888
data = await client.ocs_get(f"{SHARES_API}/{share_id}")
8989
share = _format_share(data[0])
90-
return json.dumps(share, indent=2, default=str)
90+
return json.dumps(share, default=str)
9191

9292

9393
_SUPPORTED_SHARE_TYPES = {0, 1, 3, 4, 6, 10}
@@ -163,7 +163,7 @@ async def create_share(
163163
if public_upload:
164164
data["publicUpload"] = "true"
165165
result = await client.ocs_post(SHARES_API, data=data)
166-
return json.dumps(_format_share(result), indent=2, default=str)
166+
return json.dumps(_format_share(result), default=str)
167167

168168

169169
def _register_update_share(mcp: FastMCP) -> None:
@@ -213,7 +213,7 @@ async def update_share(
213213
if hide_download is not None:
214214
data["hideDownload"] = "true" if hide_download else "false"
215215
result = await client.ocs_put(f"{SHARES_API}/{share_id}", data=data)
216-
return json.dumps(_format_share(result), indent=2, default=str)
216+
return json.dumps(_format_share(result), default=str)
217217

218218

219219
def _register_destructive_tools(mcp: FastMCP) -> None:

0 commit comments

Comments
 (0)