MCP server for Hound code search - expose regex-based code search to Claude Code and AI agents
Drift inferred · capture-to-capture
No drift recorded — single capability capture; advisories appear once its surface changes.
transport stdio · streamable-http · http · sse counts 7 tools · 0 res
· 0 prompts
permission surface via code analysis
tools
-
hound_file_context
-
hound_help
-
hound_index_repos
-
hound_repo_stats
-
hound_repos
-
hound_search
-
hound_search_symbol
prompt-surface
shipped agent-instruction files + hidden-content / dangerous-code findings —
quoted from the analyzed source
analyzed commit 51cab3a · analyzer v33 · 2w ago
skills & prompt files 2
- agent-rules jmagly-hound-mcp-51cab3a/AGENTS.md
- agent-rules jmagly-hound-mcp-51cab3a/CLAUDE.md
danger signals1
- credential in logs credential in log jmagly-hound-mcp-51cab3a/src/cli.ts :43
console.log(` Client Secret: ${clientSecret}`);
evidence-backed
findings quoted directly from the published source artifact — not inferred
code files: 36
filesystem 4
- fs jmagly-hound-mcp-51cab3a/src/auth.ts :8
import { readFileSync, writeFileSync, existsSync } from 'node:fs'; - fs jmagly-hound-mcp-51cab3a/src/indexer/index.ts :8
import { promises as fs } from 'node:fs'; - fs jmagly-hound-mcp-51cab3a/src/indexer/parser.ts :9
import { promises as fs } from 'node:fs'; - fs jmagly-hound-mcp-51cab3a/tools/release/verify-release.mjs :2
import { readFileSync } from 'node:fs';
shell / exec 2
- shell jmagly-hound-mcp-51cab3a/src/webhook.ts :8
import { execSync } from 'node:child_process'; - shell jmagly-hound-mcp-51cab3a/tools/release/verify-release.mjs :1
import { execFileSync } from 'node:child_process';
network 5
- net jmagly-hound-mcp-51cab3a/src/clients/gitea.ts :122
const treeResponse = await this.fetch(treeUrl); - net jmagly-hound-mcp-51cab3a/src/clients/hound.ts :150
const response = await this.fetch(url); - net jmagly-hound-mcp-51cab3a/src/index.ts :11
import { createServer } from 'node:http'; - net jmagly-hound-mcp-51cab3a/src/indexer/parser.ts :94
const response = await fetch(url); - net jmagly-hound-mcp-51cab3a/src/tools/context.ts :137
const response = await fetch(url, { headers });
secrets 6
- secrets jmagly-hound-mcp-51cab3a/src/clients/gitea.ts :95
this.token = config?.token || process.env.GITEA_TOKEN || ''; - secrets jmagly-hound-mcp-51cab3a/src/clients/hound.ts :65
const githubUrl = process.env.GITHUB_URL || (process.env.GITHUB_TOKEN ? 'https://github.com' : ''); - secrets (weak) jmagly-hound-mcp-51cab3a/src/index.security.test.ts :6
delete process.env.MCP_APPROVAL_TOKEN; - secrets jmagly-hound-mcp-51cab3a/src/index.ts :234
const expected = process.env.MCP_APPROVAL_TOKEN; - secrets jmagly-hound-mcp-51cab3a/src/tools/context.ts :72
token: process.env.GITEA_TOKEN, - secrets jmagly-hound-mcp-51cab3a/src/webhook.ts :16
const WEBHOOK_SECRET = process.env.HOUND_WEBHOOK_SECRET || '';
tool registrations 7
- hound_search jmagly-hound-mcp-51cab3a/src/index.ts :83
- hound_repos jmagly-hound-mcp-51cab3a/src/index.ts :89
- hound_file_context jmagly-hound-mcp-51cab3a/src/index.ts :95
- hound_repo_stats jmagly-hound-mcp-51cab3a/src/index.ts :101
- hound_search_symbol jmagly-hound-mcp-51cab3a/src/index.ts :107
- hound_index_repos jmagly-hound-mcp-51cab3a/src/index.ts :113
- hound_help jmagly-hound-mcp-51cab3a/src/index.ts :119
install hooks 1
- prepublishOnly jmagly-hound-mcp-51cab3a/package.json :26
npm run build
declared dependencies 12
- @modelcontextprotocol/sdk@^1.30.0
- web-tree-sitter@^0.26.13
- zod@^3.25.76
- @eslint/js@^9.39.5
- @types/node@^24.13.3
- @vitest/coverage-v8@^4.1.11
- eslint@^9.39.5
- prettier@^3.9.6
- tsx@^4.23.12
- typescript@^5.9.3
- typescript-eslint@^8.68.0
- vitest@^4.1.11