Semantiqv0.5.2
01Home
02Features
03Docs
04Blog
05Changelog
06Support
Get Started

Getting Started

  • Quick StartGet started in 5 minutes

Reference

  • CLI CommandsCommand reference
  • MCP IntegrationAI assistant setup
  • Usage GuideUsage patterns
  • Optimal WorkflowDevelopment workflow
  • Semantiq vs grepvs grep & find
  • ChangelogVersion history

Loading documentation...

Semantiq

One MCP Server for every AI coding tool. Powered by Rust and Tree-sitter.

GitHub

Product

  • Features
  • Documentation
  • Changelog

Resources

  • Quick Start
  • CLI Reference
  • MCP Integration
  • Blog

Connect

  • Support
  • GitHub
// 19 languages supported
Rust
TypeScript
JavaScript
Python
Go
Java
C
C++
PHP
Ruby
C#
Kotlin
Scala
Bash
Elixir
HTML
JSON
YAML
TOML
© 2026 Semantiq.|v0.5.2|connected
MIT·Built with Rust & Tree-sitter
  1. Home
  2. Docs
  3. Practical Usage Guide
Guide
4 min read

Practical Usage Guide

How to actually use the Semantiq MCP tools - with real examples.

Practical Usage Guide#

Here's how to get the most out of Semantiq's 4 MCP tools. Skip the theory - let's see what they actually do.

semantiq_search#

The main workhorse. Finds code by meaning, not just keywords.

Parameters#

ParamTypeDefaultWhat it does
querystring—What you're looking for
limitnumber20Max results
min_scorefloat0.35Threshold (0.0-1.0)
file_typestring—e.g. ts,tsx,py
symbol_kindstring—function, class, interface...

In practice#

Search for a concept:

Plain Text
1→ semantiq_search("authentication handler")
2
3src/auth/handler.ts:23 [0.89]
4 function handleAuth(req: Request): Promise<User>
5
6src/middleware/auth.ts:45 [0.76]
7 export const authMiddleware = async (ctx) => {...}
8
9src/utils/token.ts:12 [0.71]
10 function verifyToken(token: string): boolean

Notice: it found verifyToken even though "authentication" isn't in the name. That's the semantic part.

Narrow it down:

Plain Text
1→ semantiq_search("User", symbol_kind: "interface")
2
3src/types/user.ts:5 [0.95]
4 interface User { id: string; email: string; ... }
5
6src/types/auth.ts:12 [0.82]
7 interface UserCredentials { email: string; ... }

When you need precision:

Set min_score: 0.7 or higher. You'll get fewer results, but they'll be spot on.


semantiq_explain#

Quick way to understand what a symbol does without reading the whole file.

Parameters#

ParamTypeWhat it does
symbolstringThe thing you want explained

In practice#

Plain Text
1→ semantiq_explain("handleAuth")
2
3FUNCTION: handleAuth
4Location: src/auth/handler.ts:23-45
5
6async function handleAuth(
7 req: Request,
8 options?: AuthOptions
9): Promise<User>
10
11Doc: Handles user authentication by verifying
12credentials and returning the authenticated user.
13
14Related:
15 → User (return type)
16 → AuthOptions (param)
17 → verifyToken (called inside)
18 → authMiddleware (caller)

Saves you from hunting through the file. You get the signature, the docs if any, and what's connected to it.


semantiq_deps#

Shows you the import/export web around a file. Essential before touching shared code.

Parameters#

ParamTypeWhat it does
file_pathstringFile to analyze

In practice#

Plain Text
1→ semantiq_deps("src/auth/handler.ts")
2
3IMPORTS (what it uses):
4 src/types/user.ts → User, UserRole
5 src/utils/token.ts → verifyToken, generateToken
6 src/config/auth.ts → authConfig
7 src/db/users.ts → findUserByEmail
8
9DEPENDENTS (what uses it):
10 src/middleware/auth.ts → handleAuth
11 src/routes/api.ts → handleAuth
12 src/tests/auth.test.ts → handleAuth

For core utilities:

Plain Text
1→ semantiq_deps("src/utils/token.ts")
2
3IMPORTS: 2 files
4DEPENDENTS: 8 files
5
6⚠ High-impact file

If you see lots of dependents, tread carefully.


semantiq_find_refs#

Find everywhere a symbol is used. Use this before refactoring.

Parameters#

ParamTypeDefaultWhat it does
symbolstring—What to find
limitnumber50Max refs

In practice#

Plain Text
1→ semantiq_find_refs("handleAuth")
2
3DEFINITION
4 src/auth/handler.ts:23
5 export async function handleAuth(req: Request)
6
7USAGES
8 src/middleware/auth.ts:12
9 const user = await handleAuth(ctx.request);
10
11 src/routes/api.ts:45
12 router.post('/login', (req) => handleAuth(req));
13
14 src/tests/auth.test.ts:23
15 const result = await handleAuth(mockRequest);
16
17 src/tests/auth.test.ts:56
18 expect(handleAuth(invalidReq)).rejects.toThrow();

Unlike grep, this distinguishes definitions from usages. No noise.


Speed#

ToolTypicalLarge codebase
semantiq_search~45ms~120ms
semantiq_explain~30ms~60ms
semantiq_deps~25ms~80ms
semantiq_find_refs~40ms~100ms

All tools respond in under 120ms, even on large codebases.


Tips#

On queries:

  • "authentication handler" beats "auth" — be specific
  • Natural language works: "function that validates user input"
  • Stack filters: file_type: "ts" + symbol_kind: "function"

On min_score:

  • 0.3 → exploring, cast a wide net
  • 0.5-0.6 → looking for something specific
  • 0.7+ → need exact matches

Workflow pattern:

  1. semantiq_search to find candidates
  2. semantiq_explain on promising hits
  3. semantiq_deps before modifying anything
  4. semantiq_find_refs before renaming

See Also#

  • CLI Reference - Complete command documentation
  • Optimal Workflow - Combine Semantiq with native tools
  • Semantiq vs grep/find - Detailed tool comparison

Was this page helpful? Let us know on GitHub.