Skip to main content
Glama
maniranjan2023

MCP Open Library & File Search Server

πŸ“š MCP Open Library & File Search Server

This project is an MCP (Model Context Protocol) server built with TypeScript and Node.js. It provides two core tools:

  1. search_author β€” search for books by author using the Open Library API.

  2. search_in_file β€” search for a keyword inside any local text file.


πŸš€ Features

πŸ” search_author

Fetches book data by a given author name from the Open Library API.

Input

{
  "author": "tolkien"
}

Output A JSON response containing book search results.


πŸ—‚ search_in_file

Scans a file for a keyword and returns the matching lines and their numbers.

Input

{
  "filePath": "./sample.txt",
  "keyword": "example"
}

Output

Found 2 match(es) for "example" in "./sample.txt":

Line 3: This is an example line
Line 8: Another example text

Related MCP server: books-catalog

πŸ—οΈ Project Structure

MCP/
β”œβ”€β”€ build/           # Compiled JS files
β”œβ”€β”€ src/             # Source TypeScript files
β”‚   └── index.ts
β”œβ”€β”€ sample.txt       # Example file for keyword search
β”œβ”€β”€ package.json
β”œβ”€β”€ tsconfig.json
β”œβ”€β”€ .gitignore
└── README.md

βš™οΈ Setup & Run

  1. Install dependencies

    npm install
  2. Build

    npm run build
  3. Run

    npm start

    Or directly (without compiling):

    npm run dev

🧩 Example: Using in MCP Inspector

For search_in_file:

{
  "filePath": "./sample.txt",
  "keyword": "OpenAI"
}

For search_author:

{
  "author": "tolkien"
}

🧠 Technologies


🧾 License

MIT License Β© 2025


πŸ‘¨β€πŸ’» Author

Your Name πŸ“§ maniranjan1512@gmail.com 🌐 github.com/maniranjan2023

Available Tools

2 tools
search_authorC

Search for books on the Open Library API by author name.

ParametersJSON Schema
NameRequiredDescriptionDefault
authorYes

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must carry the full burden. It implies a read operation but does not state explicitly that it is read-only, nor does it mention rate limits, error behavior, or side effects. As a tool querying an external API, more detail is needed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence with no wasted words. While efficient, it could be slightly more structured, but it is not overly verbose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (one parameter, no output schema), the description is incomplete. It doesn't explain the return format, error handling, or operational details for an API call, leaving significant gaps for an agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description only mentions 'by author name', which minimally clarifies the parameter's purpose. No format, examples, or constraints are given, so it adds little value beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the tool searches for books by author name. It uses a specific verb (search) and resource (books), and easily distinguishes from sibling tool 'search_in_file' which searches within a file.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus the sibling 'search_in_file' or any other alternatives. Lacks prerequisites or context about when the tool is appropriate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_in_fileB

Search for a specified keyword within a given file. Returns the lines containing the keyword and their line numbers.

ParametersJSON Schema
NameRequiredDescriptionDefault
filePathYes
keywordYes

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Without annotations, the description bears the full burden. It states it returns lines and line numbers, which is good, but lacks details like case sensitivity, partial matching, or handling of large files. The behavior is partially transparent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences, front-loaded with the main action and output. No redundant words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple 2-parameter tool with no output schema, the description covers the core function but omits contextual details like case sensitivity, encoding, or binary file handling. It is adequate but not comprehensive.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, but the description adds no extra meaning beyond the parameter names. 'filePath' and 'keyword' are not elaborated (e.g., path format, match type). It provides minimal value over the schema alone.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it searches for a keyword within a file and returns matching lines with line numbers. The verb 'search', resource 'file', and output are specific. The sibling 'search_author' helps distinguish it as a file-content search.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool over 'search_author' or other alternatives. The description does not mention when not to use it or any prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 2 tool updatesv0.1.0
    • First observedsearch_author
    • First observedsearch_in_file

TDQS

B3.2/5.0
Disambiguation5/5

The two tools have entirely different purposesβ€”one searches Open Library by author name, the other searches within a local file. No overlap or ambiguity is possible.

Naming Consistency4/5

Both tools use the 'search_' prefix followed by a specifier (author vs. in_file), showing a consistent verb-first pattern. Minor variation in specifier type (noun vs. prepositional phrase) is acceptable.

Tool Count2/5

With only two tools covering two distinct domains (Open Library and file search), the server feels thin and unfocused. Each domain would benefit from additional tools to be useful, making the count too low for the stated scope.

Completeness2/5

The server provides only one operation per domain: author search and in-file keyword search. Missing are common complementary tools like book search by title/ISBN, file listing, or multiple search modalities. The tool surface is severely incomplete for both purposes.

Maintenance

ActivityInactive
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    A library management MCP server supporting book search, member management, and loan operations through natural language commands.
    13
    4
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    A well-documented MCP server that exposes a local SQLite catalog of public-domain books through tools like search, get, filter by genre, top-rated, and catalog stats.
    MIT
  • F
    license
    C
    quality
    D
    maintenance
    A comprehensive MCP server for searching books, films, and scholarly publications across multiple APIs like Open Library, Google Books, TMDb, and Crossref, with advanced filtering and deduplication.
    17
    -
  • A
    license
    Not graded
    quality
    A
    maintenance
    An MCP server that enables searching books and authors, fetching editions, browsing subjects, and resolving cover images from Open Library.
    323
    3
    Apache 2.0

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/maniranjan2023/MCP-Server'

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