Thank you for your submission, an automated scan of your plugin code's revealed the following issues:

### Required

[[1](https://github.com/Xe138/obsidian-mcp-server/blob/7f82902b5e56efb606588ce2a8e4889b00c03942/src/tools/index.ts#L235)][[2](https://github.com/Xe138/obsidian-mcp-server/blob/7f82902b5e56efb606588ce2a8e4889b00c03942/src/tools/index.ts#L300)]:Obsidian's configuration directory isn't necessarily `.obsidian`, it can be configured by the user. You can access the configured value from `Vault#configDir`

[[1](https://github.com/Xe138/obsidian-mcp-server/blob/7f82902b5e56efb606588ce2a8e4889b00c03942/src/settings.ts#L199)][[2](https://github.com/Xe138/obsidian-mcp-server/blob/7f82902b5e56efb606588ce2a8e4889b00c03942/src/settings.ts#L201)][[3](https://github.com/Xe138/obsidian-mcp-server/blob/7f82902b5e56efb606588ce2a8e4889b00c03942/src/settings.ts#L202)][[4](https://github.com/Xe138/obsidian-mcp-server/blob/7f82902b5e56efb606588ce2a8e4889b00c03942/src/settings.ts#L203)][[5](https://github.com/Xe138/obsidian-mcp-server/blob/7f82902b5e56efb606588ce2a8e4889b00c03942/src/settings.ts#L204)][[6](https://github.com/Xe138/obsidian-mcp-server/blob/7f82902b5e56efb606588ce2a8e4889b00c03942/src/settings.ts#L217)][[7](https://github.com/Xe138/obsidian-mcp-server/blob/7f82902b5e56efb606588ce2a8e4889b00c03942/src/settings.ts#L218)][[8](https://github.com/Xe138/obsidian-mcp-server/blob/7f82902b5e56efb606588ce2a8e4889b00c03942/src/settings.ts#L222)][[9](https://github.com/Xe138/obsidian-mcp-server/blob/7f82902b5e56efb606588ce2a8e4889b00c03942/src/settings.ts#L223)][[10](https://github.com/Xe138/obsidian-mcp-server/blob/7f82902b5e56efb606588ce2a8e4889b00c03942/src/settings.ts#L224)][[11](https://github.com/Xe138/obsidian-mcp-server/blob/7f82902b5e56efb606588ce2a8e4889b00c03942/src/settings.ts#L247)][[12](https://github.com/Xe138/obsidian-mcp-server/blob/7f82902b5e56efb606588ce2a8e4889b00c03942/src/settings.ts#L248)][[13](https://github.com/Xe138/obsidian-mcp-server/blob/7f82902b5e56efb606588ce2a8e4889b00c03942/src/settings.ts#L249)][[14](https://github.com/Xe138/obsidian-mcp-server/blob/7f82902b5e56efb606588ce2a8e4889b00c03942/src/settings.ts#L250)][[15](https://github.com/Xe138/obsidian-mcp-server/blob/7f82902b5e56efb606588ce2a8e4889b00c03942/src/settings.ts#L251)][[16](https://github.com/Xe138/obsidian-mcp-server/blob/7f82902b5e56efb606588ce2a8e4889b00c03942/src/settings.ts#L252)][[17](https://github.com/Xe138/obsidian-mcp-server/blob/7f82902b5e56efb606588ce2a8e4889b00c03942/src/settings.ts#L253)][[18](https://github.com/Xe138/obsidian-mcp-server/blob/7f82902b5e56efb606588ce2a8e4889b00c03942/src/settings.ts#L254)][[19](https://github.com/Xe138/obsidian-mcp-server/blob/7f82902b5e56efb606588ce2a8e4889b00c03942/src/settings.ts#L255)][[20](https://github.com/Xe138/obsidian-mcp-server/blob/7f82902b5e56efb606588ce2a8e4889b00c03942/src/settings.ts#L260)][[21](https://github.com/Xe138/obsidian-mcp-server/blob/7f82902b5e56efb606588ce2a8e4889b00c03942/src/settings.ts#L261)][[22](https://github.com/Xe138/obsidian-mcp-server/blob/7f82902b5e56efb606588ce2a8e4889b00c03942/src/settings.ts#L264)][[23](https://github.com/Xe138/obsidian-mcp-server/blob/7f82902b5e56efb606588ce2a8e4889b00c03942/src/settings.ts#L271)][[24](https://github.com/Xe138/obsidian-mcp-server/blob/7f82902b5e56efb606588ce2a8e4889b00c03942/src/settings.ts#L272)][[25](https://github.com/Xe138/obsidian-mcp-server/blob/7f82902b5e56efb606588ce2a8e4889b00c03942/src/settings.ts#L273)][[26](https://github.com/Xe138/obsidian-mcp-server/blob/7f82902b5e56efb606588ce2a8e4889b00c03942/src/settings.ts#L274)][[27](https://github.com/Xe138/obsidian-mcp-server/blob/7f82902b5e56efb606588ce2a8e4889b00c03942/src/settings.ts#L278)][[28](https://github.com/Xe138/obsidian-mcp-server/blob/7f82902b5e56efb606588ce2a8e4889b00c03942/src/settings.ts#L279)][[29](https://github.com/Xe138/obsidian-mcp-server/blob/7f82902b5e56efb606588ce2a8e4889b00c03942/src/settings.ts#L280)][[30](https://github.com/Xe138/obsidian-mcp-server/blob/7f82902b5e56efb606588ce2a8e4889b00c03942/src/settings.ts#L281)] and more :You should avoid assigning styles via JavaScript or in HTML and instead move all these styles into CSS so that they are more easily adaptable by themes and snippets.


[[1](https://github.com/Xe138/obsidian-mcp-server/blob/7f82902b5e56efb606588ce2a8e4889b00c03942/src/main.ts#L54)][[2](https://github.com/Xe138/obsidian-mcp-server/blob/7f82902b5e56efb606588ce2a8e4889b00c03942/src/main.ts#L62)][[3](https://github.com/Xe138/obsidian-mcp-server/blob/7f82902b5e56efb606588ce2a8e4889b00c03942/src/main.ts#L70)]:The command name should not include the plugin name.



---

### Optional

[[1](https://github.com/Xe138/obsidian-mcp-server/blob/7f82902b5e56efb606588ce2a8e4889b00c03942/src/tools/note-tools.ts#L162)][[2](https://github.com/Xe138/obsidian-mcp-server/blob/7f82902b5e56efb606588ce2a8e4889b00c03942/src/tools/note-tools.ts#L546)][[3](https://github.com/Xe138/obsidian-mcp-server/blob/7f82902b5e56efb606588ce2a8e4889b00c03942/src/adapters/vault-adapter.ts#L47)]:Use `app.fileManager.trashFile(file: TAbstractFile)` instead, this will make sure that the file is deleted according to the users preferences.

[[1](https://github.com/Xe138/obsidian-mcp-server/blob/7f82902b5e56efb606588ce2a8e4889b00c03942/src/tools/vault-tools.ts#L372)][[2](https://github.com/Xe138/obsidian-mcp-server/blob/7f82902b5e56efb606588ce2a8e4889b00c03942/src/tools/vault-tools.ts#L373)][[3](https://github.com/Xe138/obsidian-mcp-server/blob/7f82902b5e56efb606588ce2a8e4889b00c03942/src/main.ts#L27)][[4](https://github.com/Xe138/obsidian-mcp-server/blob/7f82902b5e56efb606588ce2a8e4889b00c03942/tests/auth-utils.test.ts#L87)][[5](https://github.com/Xe138/obsidian-mcp-server/blob/7f82902b5e56efb606588ce2a8e4889b00c03942/tests/auth-utils.test.ts#L91)][[6](https://github.com/Xe138/obsidian-mcp-server/blob/7f82902b5e56efb606588ce2a8e4889b00c03942/tests/crypto-adapter.test.ts#L7)][[7](https://github.com/Xe138/obsidian-mcp-server/blob/7f82902b5e56efb606588ce2a8e4889b00c03942/tests/crypto-adapter.test.ts#L100)][[8](https://github.com/Xe138/obsidian-mcp-server/blob/7f82902b5e56efb606588ce2a8e4889b00c03942/tests/crypto-adapter.test.ts#L138)][[9](https://github.com/Xe138/obsidian-mcp-server/blob/7f82902b5e56efb606588ce2a8e4889b00c03942/tests/frontmatter-utils.test.ts#L340)][[10](https://github.com/Xe138/obsidian-mcp-server/blob/7f82902b5e56efb606588ce2a8e4889b00c03942/tests/frontmatter-utils.test.ts#L344)][[11](https://github.com/Xe138/obsidian-mcp-server/blob/7f82902b5e56efb606588ce2a8e4889b00c03942/tests/frontmatter-utils.test.ts#L503)][[12](https://github.com/Xe138/obsidian-mcp-server/blob/7f82902b5e56efb606588ce2a8e4889b00c03942/tests/__mocks__/adapters.ts#L60)][[13](https://github.com/Xe138/obsidian-mcp-server/blob/7f82902b5e56efb606588ce2a8e4889b00c03942/tests/__mocks__/adapters.ts#L75)][[14](https://github.com/Xe138/obsidian-mcp-server/blob/7f82902b5e56efb606588ce2a8e4889b00c03942/tests/parent-folder-detection.test.ts#L20-L26)][[15](https://github.com/Xe138/obsidian-mcp-server/blob/7f82902b5e56efb606588ce2a8e4889b00c03942/tests/parent-folder-detection.test.ts#L197)][[16](https://github.com/Xe138/obsidian-mcp-server/blob/7f82902b5e56efb606588ce2a8e4889b00c03942/tests/path-utils.test.ts#L163)][[17](https://github.com/Xe138/obsidian-mcp-server/blob/7f82902b5e56efb606588ce2a8e4889b00c03942/tests/path-utils.test.ts#L173)][[18](https://github.com/Xe138/obsidian-mcp-server/blob/7f82902b5e56efb606588ce2a8e4889b00c03942/tests/path-utils.test.ts#L181)][[19](https://github.com/Xe138/obsidian-mcp-server/blob/7f82902b5e56efb606588ce2a8e4889b00c03942/tests/path-utils.test.ts#L189)][[20](https://github.com/Xe138/obsidian-mcp-server/blob/7f82902b5e56efb606588ce2a8e4889b00c03942/tests/path-utils.test.ts#L199)][[21](https://github.com/Xe138/obsidian-mcp-server/blob/7f82902b5e56efb606588ce2a8e4889b00c03942/tests/path-utils.test.ts#L208)][[22](https://github.com/Xe138/obsidian-mcp-server/blob/7f82902b5e56efb606588ce2a8e4889b00c03942/tests/path-utils.test.ts#L215)][[23](https://github.com/Xe138/obsidian-mcp-server/blob/7f82902b5e56efb606588ce2a8e4889b00c03942/tests/path-utils.test.ts#L224)][[24](https://github.com/Xe138/obsidian-mcp-server/blob/7f82902b5e56efb606588ce2a8e4889b00c03942/tests/path-utils.test.ts#L231)][[25](https://github.com/Xe138/obsidian-mcp-server/blob/7f82902b5e56efb606588ce2a8e4889b00c03942/tests/path-utils.test.ts#L236)][[26](https://github.com/Xe138/obsidian-mcp-server/blob/7f82902b5e56efb606588ce2a8e4889b00c03942/tests/path-utils.test.ts#L247)][[27](https://github.com/Xe138/obsidian-mcp-server/blob/7f82902b5e56efb606588ce2a8e4889b00c03942/tests/path-utils.test.ts#L252)][[28](https://github.com/Xe138/obsidian-mcp-server/blob/7f82902b5e56efb606588ce2a8e4889b00c03942/tests/settings-types.test.ts#L10)][[29](https://github.com/Xe138/obsidian-mcp-server/blob/7f82902b5e56efb606588ce2a8e4889b00c03942/tests/settings-types.test.ts#L14)][[30](https://github.com/Xe138/obsidian-mcp-server/blob/7f82902b5e56efb606588ce2a8e4889b00c03942/tests/settings-types.test.ts#L44)] and more :Casting to `any` should be avoided as much as possible.



---



Do <b>NOT</b> open a new PR for re-validation.
Once you have pushed all of the required changes to your repo, the bot will update the labels on this PR within 6 hours.
If you think some of the required changes are incorrect, please comment with `/skip` and the reason why you think the results are incorrect.