with one click
verify-multilang-support
// Use when verifying code-index-mcp multi-language indexing and search behavior against the sample projects under test/sample-projects.
// Use when verifying code-index-mcp multi-language indexing and search behavior against the sample projects under test/sample-projects.
| name | verify-multilang-support |
| description | Use when verifying code-index-mcp multi-language indexing and search behavior against the sample projects under test/sample-projects. |
As an agent, your goal is to verify that the code-index-mcp server can correctly index, deep-index, and search code across different programming languages. Use the MCP tools available in your environment to interact with the sample projects located in test/sample-projects.
Important: This is not a "does it return something" test. You must compare the actual get_file_summary output against the expected baselines below and flag any discrepancy in language, symbol_count, function/method/class names, called_by relationships, and imports.
Preparation
test/sample-projects.Verification Loop For each language, perform these steps sequentially:
a. Set Path
set_project_path with the absolute path to the sample project.b. Shallow Index
refresh_index to build the shallow (file-list) index.c. Deep Index
build_deep_index to run full symbol extraction.d. Search & Verify
search_code_advanced.e. Deep Summary Check — compare against baseline
get_file_summary for the Preferred File.language field matches expected value.symbol_count is >= the expected minimum.expected_functions appears in the functions list.expected_methods appears in the methods list.expected_classes appears in the classes list.expected_called_by, verify the named symbol's called_by list contains the expected callers.expected_imports appears in the imports list.f. Symbol Body Check
get_symbol_body for the Expected Symbol in the Preferred File.status is "success" and code is non-empty.g. Record Status
SEARCH: PASS/FAILSUMMARY: PASS/FAIL (with details on which checks failed)SYMBOL_BODY: PASS/FAILFINAL: PASS/FAILBehavior Smoke Checks
get.*Data and confirm it remains literal when regex mode is omitted or disabled.Reporting
| Language | Relative Path | Verification Query | Expected Symbol | Preferred File |
|---|---|---|---|---|
| Python | python | class UserManager | cli | cli.py |
| Go | go/user-management | UserService | CreateUser | internal/services/user_service.go |
| Java | java/user-management | class UserManager | UserManager.createUser | src/main/java/com/example/usermanagement/services/UserManager.java |
| JavaScript | javascript/user-management | class UserService | UserService.createUser | src/services/UserService.js |
| TypeScript | typescript/user-management | class UserService | user | src/services/UserService.ts |
| C# | csharp/orders | class OrderService | Orders.Services.OrderService.Create | src/Orders/Services/OrderService.cs |
| Kotlin | kotlin/notes-api | class NotesService | NotesService.createNote | src/main/kotlin/com/example/notes/NotesService.kt |
| Rust | rust/conversation | struct Conversation | Conversation.append | src/conversation.rs |
| Objective-C | objective-c | interface UserManager | UserManager.addUser | UserManager.m |
| Zig | zig/code-index-example | fn main | main | src/main.zig |
cli.pylanguage: python
symbol_count_min: 11
expected_functions:
- cli
- create_user
- get_user
- list_users
- update_user
- delete_user
- authenticate
- stats
- export
- search
- main
expected_methods: []
expected_classes: []
expected_called_by:
cli: ["cli.py::main"]
create_user: ["cli.py::create_user"]
expected_imports:
- click
- json
- typing.Optional
- services.user_manager.UserManager
- services.auth_service.AuthService
internal/services/user_service.golanguage: go
symbol_count_min: 21
expected_functions:
- UserService
- NewUserService
expected_methods:
- CreateUser
- GetUserByID
- GetUserByUsername
- GetUserByEmail
- UpdateUser
- DeleteUser
- HardDeleteUser
- GetAllUsers
- GetActiveUsers
- GetUsersByRole
- SearchUsers
- GetUserStats
- AuthenticateUser
- ChangePassword
- ResetPassword
- AddPermission
- RemovePermission
- ExportUsers
- GetUserActivity
expected_classes: []
expected_called_by:
NewUserService: ["internal/services/user_service.go::CreateUser"] # at least this caller
GetUserByID:
- "internal/services/user_service.go::UpdateUser"
- "internal/services/user_service.go::DeleteUser"
- "internal/services/user_service.go::ChangePassword"
GetUserByUsername: ["internal/services/user_service.go::AuthenticateUser"]
GetAllUsers: ["internal/services/user_service.go::ExportUsers"]
expected_imports:
- encoding/json
- errors
- gorm.io/gorm
src/main/java/com/example/usermanagement/services/UserManager.javalanguage: java
symbol_count_min: 25
expected_functions: []
expected_methods:
- UserManager.createUser
- UserManager.getUser
- UserManager.updateUser
- UserManager.deleteUser
- UserManager.getAllUsers
- UserManager.getActiveUsers
- UserManager.getUsersByRole
- UserManager.filterUsers
- UserManager.searchUsers
- UserManager.getUserStats
- UserManager.exportUsers
- UserManager.exportToJson
- UserManager.exportToCsv
expected_classes:
- UserManager
expected_called_by:
UserManager.getUser:
- "src/main/java/com/example/usermanagement/services/UserManager.java::UserManager.updateUser"
- "src/main/java/com/example/usermanagement/services/UserManager.java::UserManager.deleteUser"
UserManager.filterUsers:
- "src/main/java/com/example/usermanagement/services/UserManager.java::UserManager.getUsersOlderThan"
- "src/main/java/com/example/usermanagement/services/UserManager.java::UserManager.getUsersWithEmail"
- "src/main/java/com/example/usermanagement/services/UserManager.java::UserManager.getUsersWithPermission"
UserManager.getActiveUsers:
- "src/main/java/com/example/usermanagement/services/UserManager.java::UserManager.getUserStats"
expected_imports:
- com.example.usermanagement.models.User
- com.example.usermanagement.models.UserRole
- java.util.*
src/services/UserService.jslanguage: javascript
symbol_count_min: 20
expected_functions: []
expected_methods:
- UserService.createUser
- UserService.getUserById
- UserService.updateUser
- UserService.deleteUser
- UserService.hardDeleteUser
- UserService.getAllUsers
- UserService.searchUsers
- UserService.authenticateUser
- UserService.exportUsers
- UserService.getUserActivity
expected_classes:
- UserService
expected_called_by:
UserService.createUser: ["src/routes/userRoutes.js:106"]
UserService.getUserById: ["src/routes/userRoutes.js:189"]
UserService.updateUser: ["src/routes/userRoutes.js:205"]
UserService.deleteUser: ["src/routes/userRoutes.js:254"]
UserService.getAllUsers: ["src/routes/userRoutes.js:139"]
expected_imports: [] # JS file has no extracted imports
src/services/UserService.tslanguage: typescript
symbol_count_min: 5
expected_functions:
- user
- validationErrors
- total
- totalPages
- token
expected_methods: []
expected_classes: []
expected_called_by:
user:
- "src/routes/userRoutes.ts:127"
- "src/routes/userRoutes.ts:276"
expected_imports_contain:
- "import { User } from '../models/User'"
- "import { AppError } from '../utils/errors'"
src/Orders/Services/OrderService.cslanguage: csharp
symbol_count_min: 4
expected_functions:
- Orders.Services.OrderService.#ctor
expected_methods:
- Orders.Services.OrderService.Create
- Orders.Services.OrderService.MarkPaid
expected_classes:
- Orders.Services.OrderService
expected_called_by:
Orders.Services.OrderService.#ctor: ["src/Orders/Program.cs::Orders.Program.Main"]
Orders.Services.OrderService.Create: ["src/Orders/Program.cs::Orders.Program.Main"]
Orders.Services.OrderService.MarkPaid: ["src/Orders/Program.cs::Orders.Program.Main"]
expected_imports:
- Orders.Models
- Orders.Repositories
src/main/kotlin/com/example/notes/NotesService.ktlanguage: kotlin
symbol_count_min: 4
expected_functions: []
expected_methods:
- NotesService.createNote
- NotesService.find
- NotesService.publish
expected_classes:
- NotesService
expected_called_by:
NotesService.createNote: ["src/main/kotlin/com/example/notes/NotesApp.kt::NotesApp.run"]
NotesService.find:
- "src/main/kotlin/com/example/notes/NotesService.kt::NotesService.publish"
NotesService.publish: ["src/main/kotlin/com/example/notes/NotesApp.kt::NotesApp.run"]
src/conversation.rslanguage: rust
symbol_count_min: 7
expected_functions:
- helper
- run
expected_methods:
- Conversation.new
- Conversation.append
expected_classes:
- Conversation
- Status
- Runnable
expected_called_by:
helper:
- "src/conversation.rs::run"
- "src/conversation.rs::Conversation.append"
expected_imports:
- std::collections::VecDeque
UserManager.mlanguage: objective-c
symbol_count_min: 5
expected_functions: []
expected_methods:
- UserManager.sharedManager
- UserManager.addUser
- UserManager.findUserByName
- UserManager.removeUser
- UserManager.userCount
expected_classes: []
expected_called_by: {} # Objective-C currently has no cross-method called_by tracking
expected_imports:
- UserManager.h
src/main.ziglanguage: zig
symbol_count_min: 2
expected_functions:
- main
- testOne
expected_methods: []
expected_classes: []
expected_called_by: {} # Zig currently has no called_by tracking
expected_imports: []
test/sample-projects/objective-c/.cli.py, __init__.py).get_file_summary output.