Skip to main content
Glama
Hint-Services

Obsidian GitHub MCP

searchIssues

Search GitHub issues and discussions in your Obsidian vault repository to track tasks, manage projects, and enhance collaborative knowledge work using structured queries.

Instructions

Search for issues and discussions in your Obsidian vault repository (my-organization/obsidian-vault). Great for tracking tasks, project management, and collaborative knowledge work.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
queryYesSearch query (uses GitHub Issue Search syntax)

Implementation Reference

  • Handler function that searches for issues in the GitHub repository using the Octokit client. It appends 'is:issue' to the query and formats the results as a markdown list.
    async ({ query }) => { const repoQualifier = `repo:${this.config.owner}/${this.config.repo}`; const qualifiedQuery = `${query} is:issue ${repoQualifier}`; const searchResults = await this.handleRequest(async () => { return this.octokit.search.issuesAndPullRequests({ q: qualifiedQuery, }); }); // Format results as a markdown list const formattedResults = searchResults.items .map((item) => `- #${item.number} ${item.title} (${item.html_url})`) .join("\n"); return { // Return formatted text instead of raw JSON string content: [ { type: "text" as const, text: `Found ${searchResults.total_count} issues:\n${formattedResults}`, }, ], }; }
  • Zod schema defining the input parameter 'query' for the searchIssues tool.
    query: z .string() .describe("Search query (uses GitHub Issue Search syntax)"), },
  • Registration of the searchIssues tool using server.tool, including name, description, schema, hints, and inline handler.
    server.tool( "searchIssues", `Search for issues and discussions in your Obsidian vault repository (${this.config.owner}/${this.config.repo}). Great for tracking tasks, project management, and collaborative knowledge work.`, { query: z .string() .describe("Search query (uses GitHub Issue Search syntax)"), }, { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: true, }, async ({ query }) => { const repoQualifier = `repo:${this.config.owner}/${this.config.repo}`; const qualifiedQuery = `${query} is:issue ${repoQualifier}`; const searchResults = await this.handleRequest(async () => { return this.octokit.search.issuesAndPullRequests({ q: qualifiedQuery, }); }); // Format results as a markdown list const formattedResults = searchResults.items .map((item) => `- #${item.number} ${item.title} (${item.html_url})`) .join("\n"); return { // Return formatted text instead of raw JSON string content: [ { type: "text" as const, text: `Found ${searchResults.total_count} issues:\n${formattedResults}`, }, ], }; } );

Other Tools

Related Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Hint-Services/obsidian-github-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server