Model Context Protocol (MCP) Server to connect your AI with any MediaWiki
Drift inferred · capture-to-capture
No drift recorded — single capability capture; advisories appear once its surface changes.
transport stdio · http
verified
reported
listed in the official MCP registry counts 1 tools · 0 res
· 0 prompts
permission surface via README inference
tools
-
whoami
Report the identity the current session is authenticated as on the targeted wiki — username, whether it is anonymous, and group memberships (optionally user rights).
prompt-surface
shipped agent-instruction files + hidden-content / dangerous-code findings —
quoted from the analyzed source
analyzed v0.13.1 · analyzer v33 · 4w ago
skills & prompt files 2
danger signals3
- suspicious endpoint 169.254.169.254 (cloud metadata) ProfessionalWiki-MediaWiki-MCP-Server-029b2b6/tests/tools/add-wiki.test.ts :159
'Refusing to fetch URL resolving to non-public address 169.254.169.254 (linkLocal): http://169.254.169.254/', - suspicious endpoint 169.254.169.254 (cloud metadata) ProfessionalWiki-MediaWiki-MCP-Server-029b2b6/tests/transport/httpFetch.test.ts :149
headers: { Location: 'https://169.254.169.254/latest/meta-data/' }, - suspicious endpoint 169.254.169.254 (cloud metadata) ProfessionalWiki-MediaWiki-MCP-Server-029b2b6/tests/transport/ssrfGuard.test.ts :39
assertPublicDestination('http://169.254.169.254/latest/meta-data/'),
evidence-backed
findings quoted directly from the published source artifact — not inferred
code files: 340
filesystem 18
- fs (weak) ProfessionalWiki-MediaWiki-MCP-Server-029b2b6/scripts/bundle.cjs :5
const fs = require('fs'); - fs (weak) ProfessionalWiki-MediaWiki-MCP-Server-029b2b6/scripts/extract-changelog-section.cjs :4
const fs = require('fs'); - fs (weak) ProfessionalWiki-MediaWiki-MCP-Server-029b2b6/scripts/mcp-checks.cjs :11
const fs = require('node:fs'); - fs (weak) ProfessionalWiki-MediaWiki-MCP-Server-029b2b6/scripts/promote-changelog.cjs :4
const fs = require('fs'); - fs (weak) ProfessionalWiki-MediaWiki-MCP-Server-029b2b6/scripts/sync-manifests.cjs :4
const fs = require('fs'); - fs (weak) ProfessionalWiki-MediaWiki-MCP-Server-029b2b6/scripts/update-server-json-mcpb.cjs :4
const fs = require('fs'); - fs (weak) ProfessionalWiki-MediaWiki-MCP-Server-029b2b6/scripts/update-server-json-npm.cjs :4
const fs = require('fs'); - fs (weak) ProfessionalWiki-MediaWiki-MCP-Server-029b2b6/scripts/validate-server-json.cjs :4
const fs = require('fs'); - fs ProfessionalWiki-MediaWiki-MCP-Server-029b2b6/src/auth/authorizationServer/proxyStorePersistence.ts :1
import { mkdirSync, readFileSync, renameSync, writeFileSync } from 'node:fs'; - fs ProfessionalWiki-MediaWiki-MCP-Server-029b2b6/src/auth/tokenStore.ts :2
import * as fs from 'node:fs/promises'; - fs ProfessionalWiki-MediaWiki-MCP-Server-029b2b6/src/config/loadConfig.ts :1
import * as fs from 'fs'; - fs ProfessionalWiki-MediaWiki-MCP-Server-029b2b6/src/transport/uploadGuard.ts :1
import { realpath } from 'node:fs/promises';
show 6 more
- fs (weak) ProfessionalWiki-MediaWiki-MCP-Server-029b2b6/tests/auth/authorizationServer/proxyStorePersistence.test.ts :2
import * as fs from 'node:fs'; - fs (weak) ProfessionalWiki-MediaWiki-MCP-Server-029b2b6/tests/auth/tokenStore.test.ts :3
import * as fs from 'node:fs'; - fs (weak) ProfessionalWiki-MediaWiki-MCP-Server-029b2b6/tests/config/loadConfig.test.ts :3
import * as fs from 'fs'; - fs (weak) ProfessionalWiki-MediaWiki-MCP-Server-029b2b6/tests/helpers/tempTokenStore.ts :2
import * as fs from 'node:fs'; - fs (weak) ProfessionalWiki-MediaWiki-MCP-Server-029b2b6/tests/transport/streamableHttp.proxyPersistence.smoke.test.ts :5
import * as fs from 'node:fs'; - fs (weak) ProfessionalWiki-MediaWiki-MCP-Server-029b2b6/tests/transport/uploadGuard.test.ts :7
import { realpath } from 'node:fs/promises';
shell / exec 6
- shell (weak) ProfessionalWiki-MediaWiki-MCP-Server-029b2b6/scripts/bundle.cjs :4
const { execSync } = require('child_process'); - shell (weak) ProfessionalWiki-MediaWiki-MCP-Server-029b2b6/scripts/mcp-checks.cjs :10
const { spawn, spawnSync } = require('node:child_process'); - shell ProfessionalWiki-MediaWiki-MCP-Server-029b2b6/src/wikis/execSecret.ts :1
import { execFile } from 'node:child_process'; - shell (weak) ProfessionalWiki-MediaWiki-MCP-Server-029b2b6/tests/auth/browserAuth.test.ts :2
import { ChildProcess } from 'node:child_process'; - shell (weak) ProfessionalWiki-MediaWiki-MCP-Server-029b2b6/tests/config/loadConfig.test.ts :4
import { execFileSync } from 'child_process'; - shell (weak) ProfessionalWiki-MediaWiki-MCP-Server-029b2b6/tests/wikis/execSecret.test.ts :2
import { execFile } from 'node:child_process';
network 25
- net (weak) ProfessionalWiki-MediaWiki-MCP-Server-029b2b6/scripts/mcp-checks.cjs :105
await fetch(SERVER_URL, { method: 'GET', signal: AbortSignal.timeout(2000) }); - net (weak) ProfessionalWiki-MediaWiki-MCP-Server-029b2b6/scripts/validate-server-json.cjs :21
const response = await fetch(schemaUrl); - net ProfessionalWiki-MediaWiki-MCP-Server-029b2b6/src/auth/browserAuth.ts :2
import * as http from 'node:http'; - net ProfessionalWiki-MediaWiki-MCP-Server-029b2b6/src/auth/metadata.ts :102
const res = await fetch(url, { signal: ctrl.signal }); - net ProfessionalWiki-MediaWiki-MCP-Server-029b2b6/src/auth/oauthFlow.ts :110
res = await fetch(endpoint, { - net ProfessionalWiki-MediaWiki-MCP-Server-029b2b6/src/runtime/shutdown.ts :1
import type { Server as HttpServer } from 'node:http'; - net ProfessionalWiki-MediaWiki-MCP-Server-029b2b6/src/transport/cimdFetch.ts :1
import fetch from 'node-fetch'; - net ProfessionalWiki-MediaWiki-MCP-Server-029b2b6/src/transport/httpConfig.ts :63
// Covers the three loopback spellings a browser fetch() may produce for the bound port. - net ProfessionalWiki-MediaWiki-MCP-Server-029b2b6/src/transport/httpFetch.ts :2
import fetch, { Response, FetchError } from 'node-fetch'; - net ProfessionalWiki-MediaWiki-MCP-Server-029b2b6/src/transport/ssrfGuard.ts :3
import { Agent as HttpAgent } from 'node:http'; - net (weak) ProfessionalWiki-MediaWiki-MCP-Server-029b2b6/tests/helpers/fakeAuthorizationServer.ts :4
import { type Server } from 'node:http'; - net (weak) ProfessionalWiki-MediaWiki-MCP-Server-029b2b6/tests/helpers/fakeBrowserDriver.ts :30
await fetch(cb.toString()).catch(() => undefined);
show 13 more
- net (weak) ProfessionalWiki-MediaWiki-MCP-Server-029b2b6/tests/helpers/fakeMcpClient.ts :193
const upstreamRes = await fetch(upstreamAuthorizeUrl, { redirect: 'manual' }); - net (weak) ProfessionalWiki-MediaWiki-MCP-Server-029b2b6/tests/resources/index.test.ts :230
fetch: (url, init) => handler.fetch(new Request(url, init)), - net (weak) ProfessionalWiki-MediaWiki-MCP-Server-029b2b6/tests/tools/extensions/wikibase/sparql.test.ts :10
import { FetchError } from 'node-fetch'; - net (weak) ProfessionalWiki-MediaWiki-MCP-Server-029b2b6/tests/tools/update-file-from-url.test.ts :2
import { FetchError } from 'node-fetch'; - net (weak) ProfessionalWiki-MediaWiki-MCP-Server-029b2b6/tests/tools/upload-file-from-url.test.ts :2
import { FetchError } from 'node-fetch'; - net (weak) ProfessionalWiki-MediaWiki-MCP-Server-029b2b6/tests/transport/cimdFetch.test.ts :3
import { Agent as HttpsAgent } from 'node:https'; - net (weak) ProfessionalWiki-MediaWiki-MCP-Server-029b2b6/tests/transport/httpFetch.abort.test.ts :24
import { createServer, type Server } from 'node:http'; - net (weak) ProfessionalWiki-MediaWiki-MCP-Server-029b2b6/tests/transport/httpFetch.disposal.test.ts :22
import { createServer, type Server } from 'node:http'; - net (weak) ProfessionalWiki-MediaWiki-MCP-Server-029b2b6/tests/transport/httpFetch.redirect.test.ts :20
import { createServer, type IncomingHttpHeaders, type Server } from 'node:http'; - net (weak) ProfessionalWiki-MediaWiki-MCP-Server-029b2b6/tests/transport/httpFetch.test.ts :18
import fetch, { Response, FetchError } from 'node-fetch'; - net (weak) ProfessionalWiki-MediaWiki-MCP-Server-029b2b6/tests/transport/modernEra.test.ts :29
fetch: (url, init) => handler.fetch(new Request(url, init)), - net (weak) ProfessionalWiki-MediaWiki-MCP-Server-029b2b6/tests/transport/ssrfGuard.test.ts :7
import { Agent as HttpAgent } from 'node:http'; - net (weak) ProfessionalWiki-MediaWiki-MCP-Server-029b2b6/tests/transport/streamableHttp.proxy.test.ts :241
await fetch(`${fakeAs!.url}/w/api.php?action=query&meta=tokens`, {
secrets 1
- secrets ProfessionalWiki-MediaWiki-MCP-Server-029b2b6/src/config/loadConfig.ts :393
const fromEnv = process.env.MCP_OAUTH2_CLIENT_SECRET?.trim();
install hooks 1
- prepare ProfessionalWiki-MediaWiki-MCP-Server-029b2b6/package.json :56
lefthook install
declared dependencies 28
- @modelcontextprotocol/express@^2.0.0
- @modelcontextprotocol/node@^2.0.0
- @modelcontextprotocol/server@^2.0.0
- @modelcontextprotocol/client@^2.0.0
- express@^5.1.0
- ipaddr.js@2.5.0
- jose@^6.2.3
- mwn@^3.0.1
- node-fetch@^3.3.2
- open@^11.0.0
- prom-client@^15.1.3
- types-mediawiki-api@^2.0.0
show 16 more
- zod@^4.4.3
- @anthropic-ai/mcpb@^2.1.2
- @mcpjam/cli@^3.16.0
- @types/express@^5.0.2
- @types/node@^26.0.1
- @types/supertest@^7.2.0
- ajv@^8.17.1
- ajv-formats@^3.0.1
- concurrently@^10.0.3
- lefthook@^2.1.6
- oxfmt@^0.62.0
- oxlint@^1.62.0
- oxlint-tsgolint@^7.0.2001
- supertest@^7.2.2
- typescript@^7.0.2
- vitest@^4.1.1
transport_posture 1
- binds all interfaces (0.0.0.0) ProfessionalWiki-MediaWiki-MCP-Server-029b2b6/tests/runtime/startup-banner.test.ts :82
host: '0.0.0.0',