@blario/mcp
Version:
Blar Model Context Protocol server
59 lines (58 loc) • 2 kB
JavaScript
import { z } from "zod";
import { blarAPIClient, BLAR_API_BASE } from "../api-client.js";
export const searchAllConsiderationsSchema = {
query: z.string().describe("Search query to filter considerations, search uses BM25 model"),
repo_name: z.string().describe("Repository name of current project"),
tag: z.enum(["context", "design_pattern"]).describe("Tag to filter considerations by type"),
};
export async function handleSearchAllConsiderations({ query, repo_name, tag, }) {
try {
// Construct query parameters
const queryParams = new URLSearchParams();
queryParams.append('query', query);
queryParams.append('repo_name', repo_name);
queryParams.append('tag', tag);
const url = `${BLAR_API_BASE}/wiki/considerations/search?` + queryParams.toString();
const result = await blarAPIClient.makeRequestWithErrorHandling(url);
if (result.error) {
return {
content: [
{
type: "text",
text: `Error searching considerations: ${JSON.stringify(result.error, null, 2)}`
}
],
isError: true
};
}
if (!result.data) {
return {
content: [
{
type: "text",
text: "No considerations found."
}
]
};
}
return {
content: [
{
type: "text",
text: JSON.stringify(result.data, null, 2)
}
]
};
}
catch (error) {
return {
content: [
{
type: "text",
text: `Error searching considerations: ${error instanceof Error ? error.message : String(error)}`
}
],
isError: true
};
}
}