Wiki source code of Cross-Wiki Reach

Last modified by gabrielc on 2026/10/21 10:53

Show last authors
1 Cross-wiki reach decides how much of a farm one MCP endpoint can see. It is a grant made on the source endpoint, which is what makes its consequences surprising: it is not a setting of the wikis being reached, and those wikis cannot refuse it through their own MCP configuration.
2
3 == Defaults ==
4
5 * The main wiki's endpoint reaches the whole farm, while its configuration page is trusted, until a main-wiki administrator first saves the farm dashboard.
6 * From that first save on, the stored list is authoritative: it can include or exclude any wiki, the main wiki included. A subwiki's endpoint sees only its own wiki unless it is granted reach.
7 * A main-wiki administrator can grant reach to a subwiki, or revoke it, in the "MCP across all wikis" dashboard.
8
9 == A source-side grant ==
10
11 A reach-enabled endpoint can search and read a target wiki even where that target wiki's own MCP endpoint is disabled, because the request is served by the source endpoint:
12
13 {{plantuml}}
14 @startuml
15 !theme bluegray
16 skinparam componentStyle rectangle
17
18 actor "AI agent" as AGENT
19
20 package "Main wiki (the source)" {
21 component "MCP endpoint\n**cross-wiki reach granted**\nits space filter applies" as SRC
22 }
23
24 package "Subwiki B (the target)" {
25 component "MCP endpoint\nenabled or not, tool selection, space filter\n**none of it is consulted**" as TGT
26 database "Pages of subwiki B" as PAGES
27 }
28
29 AGENT --> SRC : the whole request\nis served here
30 SRC --> PAGES : reads, searches and writes (write tools on),\nas the signed-in user, bounded by that user's rights on subwiki B
31 TGT -[hidden]down- PAGES
32 @enduml
33 {{/plantuml}}
34
35 The target's tool selection and space filter do not apply to it either. Three things still constrain reach:
36
37 * The acting [[user's rights>>doc:documentation.xs.admin.rights.WebHome]] on the target wiki.
38 * The source endpoint's own space filter, for reads and writes alike.
39 * The guest rule: a guest on a reach-enabled endpoint can read what the guest may view on the other wikis, whatever those wikis' own guest setting, but guests never receive write tools.
40
41 When write tools are enabled, reach covers writes as well: a page or attachment write resolves its target through the same reach check and the same source space filter, then acts with the user's rights on that wiki.
42
43 So disabling a wiki's endpoint does not hide that wiki from other endpoints. Where a wiki must never be reachable, control it with [[user rights>>doc:documentation.xs.admin.rights.WebHome]] on that wiki and grant no endpoint reach over it.
44
45 == The farm dashboard ==
46
47 The main wiki's MCP administration section lists every wiki of the farm:
48
49 |=Column |=What it shows
50 |MCP enabled |Editable when you administer that wiki, read-only otherwise, and read-only while the wiki's configuration page is not trusted.
51 |Guest access |Same editability; set per wiki.
52 |Cross-wiki reach |Editable only by a main-wiki administrator, and only while the main wiki's configuration page is trusted.
53 |Wiki |The wiki's pretty name, or its id.
54 |Configure |A link to that wiki's MCP Server section. When the wiki's configuration page is not trusted, a "configuration not trusted" marker and a "Reset" button.
55 |Server URL |A button that copies that wiki's endpoint URL. It shows no URL text.
56
57 The "MCP enabled" and "Guest access" cells of a row whose configuration page is not trusted are read-only, because its stored values are not shown. For an administrator of that wiki, its Reset button is the path that stays reachable when the wiki's own administration section is not displayed. "Cross-wiki reach" stays editable in that row, since the grant lives on the main wiki's page.
58
59 One Save applies all three columns: "MCP enabled" and "Guest access" on the rows you administer, "Cross-wiki reach" on every row when you are a main-wiki administrator. It reports how many changes were applied and how many were skipped (insufficient rights, untrusted configuration or failed write). Saving the main wiki's configuration page rebuilds every wiki's endpoint, because the reach list governs the reach-gated tools of all of them. If the main wiki's page is not trusted, reach is off for every wiki, the main wiki included, and the dashboard writes no reach change.

Get Connected