import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
import { SearchByTimeInputSchema, SearchByTimeInput } from './tools/searchByTime/schema.js';
import { handleSearchByTime } from './tools/searchByTime/handler.js';
import { ToolError } from './core/errors.js';
export function createServer() {
const server = new McpServer({
name: "file-search-mcp",
version: "1.0.0"
}, {
capabilities: {
tools: {
listChanged: false
}
}
});
server.tool(
"fs.search_by_time",
"지정 루트 내에서 파일/디렉터리를 mtime(최근 수정) 또는 created(생성) 기준으로 검색",
SearchByTimeInputSchema.shape,
async (args) => {
try {
const result = await handleSearchByTime(args as unknown as SearchByTimeInput);
return {
content: [
{
type: "text",
text: JSON.stringify(result, null, 2)
}
]
};
} catch (error) {
if (error instanceof ToolError) {
return {
isError: true,
content: [
{
type: "text",
text: error.toContent()
}
]
};
}
throw error;
}
}
);
return server;
}