Serveur MCP TypeScript (24 outils, 205 tests) : Ollama, Git, APIs, web. Projet perso reconversion IA - Peter UFENS.
Drift inferred · capture-to-capture
No drift recorded — single capability capture; advisories appear once its surface changes.
transport stdio counts 0 tools · 0 res
· 0 prompts
permission surface via code analysis
No tools enumerated yet for this server.
prompt-surface
shipped agent-instruction files + hidden-content / dangerous-code findings —
quoted from the analyzed source
analyzed commit 7be9fae · analyzer v33 · 2d ago
danger signals4
- suspicious endpoint 169.254.169.254 (cloud metadata) Peter-Ufens-iris-mcp-server-7be9fae/tests/fetch-url-v1.test.ts :83
'https://169.254.169.254/latest/meta-data/', - suspicious endpoint 169.254.169.254 (cloud metadata) Peter-Ufens-iris-mcp-server-7be9fae/tests/http-fetch.test.ts :81
await expect(fetchText('https://169.254.169.254/latest/meta-data/')).rejects.toThrow(UrlGuardError); - suspicious endpoint 169.254.169.254 (cloud metadata) Peter-Ufens-iris-mcp-server-7be9fae/tests/url-guard.test.ts :58
'https://169.254.169.254/latest/meta-data/', - suspicious endpoint 8.8.8.8 Peter-Ufens-iris-mcp-server-7be9fae/tests/url-guard.test.ts :78
expect(assertSafeUrlSync('https://8.8.8.8/').hostname).toBe('8.8.8.8');
evidence-backed
findings quoted directly from the published source artifact — not inferred
code files: 77
filesystem 22
- fs Peter-Ufens-iris-mcp-server-7be9fae/src/tools/_registry.ts :1
import { readdir } from 'node:fs/promises'; - fs Peter-Ufens-iris-mcp-server-7be9fae/src/tools/fs-list-v1.ts :2
import { readdir, stat } from 'node:fs/promises'; - fs Peter-Ufens-iris-mcp-server-7be9fae/src/tools/fs-read-v1.ts :2
import { readFile, stat } from 'node:fs/promises'; - fs Peter-Ufens-iris-mcp-server-7be9fae/src/tools/rag-query-v1.ts :2
import { readFileSync } from 'node:fs'; - fs Peter-Ufens-iris-mcp-server-7be9fae/src/tools/rag-search-v2.ts :2
import { existsSync, readFileSync } from 'node:fs'; - fs Peter-Ufens-iris-mcp-server-7be9fae/src/utils/git-guard.ts :1
import { access } from 'node:fs/promises'; - fs Peter-Ufens-iris-mcp-server-7be9fae/src/utils/path-guard.ts :2
import { realpath, lstat } from 'node:fs/promises'; - fs Peter-Ufens-iris-mcp-server-7be9fae/src/utils/rag-journal.ts :20
import { appendFileSync, existsSync, mkdirSync, readFileSync } from 'node:fs'; - fs Peter-Ufens-iris-mcp-server-7be9fae/src/version.ts :1
import { readFileSync } from 'node:fs'; - fs (weak) Peter-Ufens-iris-mcp-server-7be9fae/tests/fs-list-v1.test.ts :2
import { mkdtemp, writeFile, mkdir, rm } from 'node:fs/promises'; - fs (weak) Peter-Ufens-iris-mcp-server-7be9fae/tests/fs-read-v1.test.ts :2
import { mkdtemp, writeFile, rm } from 'node:fs/promises'; - fs (weak) Peter-Ufens-iris-mcp-server-7be9fae/tests/git-commit-v1.test.ts :2
import { mkdtemp, writeFile, rm } from 'node:fs/promises';
show 10 more
- fs (weak) Peter-Ufens-iris-mcp-server-7be9fae/tests/git-diff-v1.test.ts :2
import { mkdtemp, writeFile, rm } from 'node:fs/promises'; - fs (weak) Peter-Ufens-iris-mcp-server-7be9fae/tests/git-helpers.ts :2
import { writeFile } from 'node:fs/promises'; - fs (weak) Peter-Ufens-iris-mcp-server-7be9fae/tests/git-log-v1.test.ts :2
import { mkdtemp, rm } from 'node:fs/promises'; - fs (weak) Peter-Ufens-iris-mcp-server-7be9fae/tests/git-status-v1.test.ts :2
import { mkdtemp, writeFile, rm } from 'node:fs/promises'; - fs (weak) Peter-Ufens-iris-mcp-server-7be9fae/tests/path-guard.test.ts :2
import { mkdtemp, writeFile, rm } from 'node:fs/promises'; - fs (weak) Peter-Ufens-iris-mcp-server-7be9fae/tests/rag-hybrid-v1.test.ts :2
import { mkdtempSync, writeFileSync } from 'node:fs'; - fs (weak) Peter-Ufens-iris-mcp-server-7be9fae/tests/rag-journal.test.ts :2
import * as fs from 'node:fs'; - fs (weak) Peter-Ufens-iris-mcp-server-7be9fae/tests/rag-query-v1.test.ts :2
import { mkdtempSync, writeFileSync } from 'node:fs'; - fs (weak) Peter-Ufens-iris-mcp-server-7be9fae/tests/rag-search-v2.test.ts :2
import { mkdtempSync, writeFileSync } from 'node:fs'; - fs (weak) Peter-Ufens-iris-mcp-server-7be9fae/tests/zone-contentieux.test.ts :2
import { mkdtempSync, writeFileSync } from 'node:fs';
shell / exec 3
- shell Peter-Ufens-iris-mcp-server-7be9fae/src/utils/git-run.ts :1
import { execFileSync } from 'node:child_process'; - shell (weak) Peter-Ufens-iris-mcp-server-7be9fae/tests/git-helpers.ts :1
import { execFileSync } from 'node:child_process'; - shell (weak) Peter-Ufens-iris-mcp-server-7be9fae/tests/rag-journal.test.ts :67
const r = await exec({ query: 'ou est le zorblat' });
network 6
- net Peter-Ufens-iris-mcp-server-7be9fae/src/tools/ollama-chat-v1.ts :39
const res = await fetch(url, { - net Peter-Ufens-iris-mcp-server-7be9fae/src/tools/ollama-list-v1.ts :27
const res = await fetch(url, { signal: controller.signal }); - net Peter-Ufens-iris-mcp-server-7be9fae/src/tools/rag-hybrid-v1.ts :120
const res = await fetch(url, { - net Peter-Ufens-iris-mcp-server-7be9fae/src/tools/rag-query-v1.ts :228
const res = await fetch(url, { - net Peter-Ufens-iris-mcp-server-7be9fae/src/tools/rag-search-v2.ts :301
const res = await fetch(url, { - net Peter-Ufens-iris-mcp-server-7be9fae/src/utils/http-fetch.ts :21
const res = await fetch(url, {
declared dependencies 6
- @modelcontextprotocol/sdk@^1.29.0
- zod@^4.3.6
- @types/node@^25.6.0
- tsx@^4.21.0
- typescript@^6.0.2
- vitest@^4.1.4