Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

DotNetSearch

NUGET · PUNEETHDC.DOTNETSEARCH

Token-efficient MCP server for codebase search, NuGet decompilation, and deep PDF reading.

0 this week 71 Trust /100

Last scanned (18 hours ago)

Scores higher than 46% of NuGet servers

Category Code Search and Documentation

Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →

Supply Chain Security100
  • No malware found by supply-chain analysis.Pass
  • No known CVEs affecting this package version or its production dependencies.Pass
  • No install/post-install scripts declared.Pass
  • No production dependencies, so there is no dependency health to assess. View diagnostics → Pass
Provenance & Transparency48
  • Source repository is publicly reachable at the declared URL. View diagnostics → Pass
  • Build provenance not yet verified. View diagnostics → Unverified
  • Clear OSI-approved license (MIT).Pass
  • Actively maintained (last published 6 days ago).Pass
  • Publishes a security disclosure policy (SECURITY.md).Pass
Schema Quality & AI Usability73
  • AI-judged instruction clarity (excellent).Pass
  • Context-footprint check failed: tool/resource definitions use about 1978 tokens (~152/item across 13 items; 13 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management0
  • Stability not yet verified: not enough scan history yet (needs a 30-day window).Unverified
Tool Coverage100
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 100% of tool parameters carry a description.Pass
Tool Safety100
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • We read all 13 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
  • An AI judge read all 13 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass

Unverified: 1 category

A category scored 0 because we could not verify it: a data source with nothing on this package, evidence we could not reach, or a check we could not run. We only credit what we can confirm.

Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 27 Oct 26 +15
    • Malware scan: unverified → pass ▲ security
  • 26 Oct 26 56

    First indexed and scored.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 4 Nov 2026 · Analysed nuget/PuneethDC.DotNetSearch@1.0.3

Provenance Inconclusive

We could not complete the check, so nothing is claimed either way. This is a gap on our side, not a finding about the package.

Result Inconclusive
Ecosystem nuget
Reason Signature present, unverified

Signer

Signed as Repository signature, names nuget.org
Subject CN=NuGet.org Repository by Microsoft,O=NuGet.org Repository by Microsoft,L=Redmond,ST=Washington,C=US
Issuer CN=DigiCert Trusted G4 Code Signing RSA4096 SHA384 2021 CA1,O=DigiCert\, Inc.,C=US
Valid from 23 Feb 2024
Valid until 18 May 2027
Service index https://api.nuget.org/v3/index.json
Owners puneethdc99

Background: How many MCP packages publish verified provenance →

Dependencies 0 packages
Packages resolved 0
Tree resolution Complete

Background: SBOMs and build attestations, explained →

Registry declarations For information only

What the registry and the package's own manifest say about this version. The publisher or the registry writes these, nothing here is verified, and none of it affects the score.

Repository https://github.com/puneethdc99/DotNetSearch
Repository type git
Commit a906ed449f200bcc51caacdd528acdaacc2a2bdf
Project URL https://github.com/puneethdc99/DotNetSearch
MCP tools · 13 exposed · ~1,978 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
compress_code ~309

Reduces code indentation from 4-space (or configurable) to 1-space per indent level and removes blank lines. Saves 10-20% tokens with zero semantic change for brace-scoped languages. SAFE for: C#, Java, JavaScript, TypeScript, C, C++, Kotlin, Swift, Rust, Scala, PHP, Ruby, CSS, SCSS, JSON, XML. DO NOT USE on indentation-sensitive languages: Python, YAML, CoffeeScript, Pug/Jade, HAML, Makefile — compression WILL corrupt these. Accepts either an absolute file path or a raw code string. Returns compressed code plus metrics: originalLength, compressedLength, savingsPercent, line counts. Use when reading source files to minimize context window usage.

NameTypeReqDescription
codestring|null–Raw C# code string to compress. Used when filePath is not provided.
filePathstring|null–Absolute path to the C# source file to compress. Provide either this or 'code'.
removeBlankLinesboolean–Remove blank/empty lines from the output. Default: true.
sourceIndentSizeinteger–Number of spaces that represent one indent level in the source. Default: 4. Set to 2 for 2-space projects.
targetIndentSizeinteger–Number of spaces to use per indent level in the output. Default: 1.
trimTrailingWhitespaceboolean–Trim trailing whitespace from each line. Default: true.

No output schema declared.

No examples provided.

decompile_type ~312

Decompiles a .NET type (class, interface, enum, struct, delegate) from the NuGet package assemblies referenced by a .NET project. Pass the short class name (e.g. 'Session') or the fully qualified name (e.g. 'Opc.Ua.Client.Session'). The tool scans the project's obj output folder — which contains all referenced NuGet DLLs after a build — so no assembly path is needed. Use this when the user or LLM needs to understand the API surface of a third-party or NuGet type without access to its source code. IMPORTANT: The target project must have been built at least once so the bin and obj folders are populated. If typeName is ambiguous (found in multiple assemblies), all matches are returned up to maxResults.

NameTypeReqDescription
maxResultsinteger–Maximum number of matching types to return when the name is ambiguous across multiple assemblies. Defaults to 1. Increase if you want to compare the same type name across multiple packages.
projectPathstringyesAbsolute path to the .csproj file of the project that references the NuGet package containing the type. Example: 'C:\repos\MyApp\MyApp.csproj'. The tool resolves the obj output folder automatically f…
typeNamestringyesShort class name (e.g. 'Session') or fully qualified name (e.g. 'Opc.Ua.Client.Session'). Matching is case-insensitive on the short name. Namespace prefix narrows the match.

No output schema declared.

No examples provided.

extract_pdf_attachments ~96

Extract embedded file attachments from a PDF file and save them to an output directory. PDFs can carry arbitrary embedded files (documents, spreadsheets, etc.) as attachments, distinct from the PDF's own embedded images. Returns the list of saved file paths and metadata.

NameTypeReqDescription
output_dirstringyesDirectory to save extracted attachments into (created if it doesn't exist)
pathstringyesAbsolute or relative path to the PDF file

No output schema declared.

No examples provided.

extract_pdf_images ~193

Extract embedded raster images from a PDF file (e.g. photos, diagrams) and save them as PNG files to an output directory. Optionally limited to a page range. Returns the list of saved file paths with their source page and size. Note: this extracts embedded image objects, not vector graphics/text — use RenderPdfPageAsImage to rasterize an entire page as a picture instead.

NameTypeReqDescription
end_pageinteger–1-based page number to stop extracting at (default: 0 means last page)
max_imagesinteger–Maximum number of images to extract in total (default: 0 means unlimited)
output_dirstringyesDirectory to save extracted images into (created if it doesn't exist)
pathstringyesAbsolute or relative path to the PDF file
start_pageinteger–1-based page number to start extracting from (default: 1)

No output schema declared.

No examples provided.

get_pdf_bookmarks ~77

Read the bookmark/outline tree (table of contents) of a PDF file. Returns each bookmark's title, target page number (1-based, when resolvable), and nested child bookmarks. Use this to understand a PDF's structure before reading specific pages.

NameTypeReqDescription
pathstringyesAbsolute or relative path to the PDF file

No output schema declared.

No examples provided.

get_pdf_form_fields ~77

Read all interactive AcroForm fields from a PDF file (text boxes, checkboxes, radio buttons, combo/list boxes, signature fields). Returns each field's name, type, and current value. Use this to extract data entered into fillable PDF forms.

NameTypeReqDescription
pathstringyesAbsolute or relative path to the PDF file

No output schema declared.

No examples provided.

get_pdf_hyperlinks ~121

Read hyperlinks and internal links from a PDF file, optionally limited to a page range. Returns each link's source page, on-page location, and target — an external URI, an internal destination page number, or a linked external file name.

NameTypeReqDescription
end_pageinteger–1-based page number to stop scanning at (default: 0 means last page)
pathstringyesAbsolute or relative path to the PDF file
start_pageinteger–1-based page number to start scanning from (default: 1)

No output schema declared.

No examples provided.

get_pdf_info ~73

Read the metadata of a PDF file: page count, per-page size, and document info (title, author, subject, keywords, creator, producer, creation/modification date). Use this first to plan which pages to read text/images from.

NameTypeReqDescription
pathstringyesAbsolute or relative path to the PDF file

No output schema declared.

No examples provided.

read_file ~114

Read a text file from disk and return its contents. Useful when you need the full contents of a specific file after a search. Supports both absolute and relative paths, and can optionally read a specific line range.

NameTypeReqDescription
end_lineinteger–1-based line number to stop reading at (default: 0 means read to end)
pathstringyesAbsolute or relative path to the file to read
start_lineinteger–1-based line number to start reading from (default: 1)

No output schema declared.

No examples provided.

read_pdf_text ~127

Extract the text content of a PDF file, optionally limited to a page range. Returns text per page along with the overall extracted text. Note: scanned/image-only PDFs will return little or no text — use ExtractPdfImages or RenderPdfPageAsImage instead for those.

NameTypeReqDescription
end_pageinteger–1-based page number to stop reading at (default: 0 means read to last page)
pathstringyesAbsolute or relative path to the PDF file
start_pageinteger–1-based page number to start reading from (default: 1)

No output schema declared.

No examples provided.

render_pdf_page_as_image ~131

Render a single PDF page as a full picture (PNG) — a screenshot of the whole page including text, vector graphics and images. Useful for scanned documents or when embedded text/images aren't sufficient. Returns the saved image file path and pixel dimensions.

NameTypeReqDescription
dpiinteger–Resolution in dots per inch for the rendered image (default: 150)
output_pathstringyesPath (including file name) to save the rendered PNG image to
pageintegeryes1-based page number to render
pathstringyesAbsolute or relative path to the PDF file

No output schema declared.

No examples provided.

search ~182

Search a local directory for files whose content matches a query keyword or phrase. Supports both exact keyword search and natural-language / semantic-style queries by tokenising the query, expanding CamelCase and snake_case identifiers, and ranking results with a BM25 relevance score. Returns the top matching lines with file path, line number, relevance score and content snippet. Pass 'repo' as an absolute or relative local directory path.

NameTypeReqDescription
context_linesinteger–Number of surrounding context lines to include above and below each match (default: 0, max: 5)
querystringyesKeyword, identifier, or natural-language phrase to search for
repostringyesLocal directory path to search (absolute or relative)
top_kinteger–Maximum number of results to return (default: 5, min: 1, max: 100)

No output schema declared.

No examples provided.

search_related ~166

Find code chunks semantically similar to a specific location in a file. Use after `search` to explore related implementations, callers, or patterns. Pass file_path and line from a prior search result. Extracts a smart chunk around the given line and finds the most structurally similar code blocks across the entire repo using BM25 token scoring.

NameTypeReqDescription
file_pathstringyesPath to the file as stored in the search result (relative or absolute)
lineintegeryesLine number (1-indexed) within the file, from a prior search result
repostringyesLocal directory path to search (absolute or relative)
top_kinteger–Number of similar chunks to return (default: 5, min: 1, max: 100)

No output schema declared.

No examples provided.

Install

How do I install the DotNetSearch MCP server?

DotNetSearch runs locally as a NuGet package, launched with dnx PuneethDC.DotNetSearch@1.0.3 --yes. Ready-made configuration for Claude, Cursor, VS Code, Codex and 3 more is on this page, copied from each client's own documentation.

nuget · PuneethDC.DotNetSearch

# add to Claude Code
claude mcp add puneethdc99-dotnetsearch -- dnx PuneethDC.DotNetSearch@1.0.3 --yes
Common questions

What is the DotNetSearch MCP server?

DotNetSearch is an MCP server listed in the public MCP registry as io.github.puneethdc99/dotnetsearch. Token-efficient MCP server for codebase search, NuGet decompilation, and deep PDF reading. This page covers its NuGet package (PuneethDC.DotNetSearch).

Is the DotNetSearch MCP server safe to use?

DotNetSearch scores 71 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 4 November 2026. It declares no install or post-install scripts. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the DotNetSearch MCP server expose?

DotNetSearch exposes 13 tools: compress_code, get_pdf_hyperlinks, search_related, search, get_pdf_form_fields, and 8 more. Their descriptions and schemas cost roughly 1,978 tokens of context every time the server is loaded.

Is the DotNetSearch MCP server still maintained?

DotNetSearch is still listed as active in the MCP registry. We last reached this channel on 4 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

What licence is the DotNetSearch MCP server under?

DotNetSearch declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.