Skip to main content
Glama
ricleedo

MCP Embedding Storage Server

by ricleedo

MCP Embedding Storage Server

An MCP server for storing and retrieving information using vector embeddings via the AI Embeddings API.

Features

  • Store content with automatically generated embeddings

  • Search content using semantic similarity

  • Access content through both tools and resources

  • Use pre-defined prompts for common operations

Related MCP server: OpenAI Vector Store MCP Server

How It Works

This MCP server connects to the AI Embeddings API, which:

  1. Processes content and breaks it into sections

  2. Generates embeddings for each section

  3. Stores both the content and embeddings in a database

  4. Enables semantic search using vector similarity

When you search, the API finds the most relevant sections of stored content based on the semantic similarity of your query to the stored embeddings.

Installation

# Install with npm
npm install -g mcp-embedding-storage

# Or with pnpm
pnpm add -g mcp-embedding-storage

# Or with yarn
yarn global add mcp-embedding-storage

Usage with Claude for Desktop

Add the following configuration to your claude_desktop_config.json file:

{
  "mcpServers": {
    "embedding-storage": {
      "command": "mcp-embedding-storage"
    }
  }
}

Then restart Claude for Desktop to connect to the server.

Available Tools

store-content

Stores content with automatically generated embeddings.

Parameters:

  • content: The content to store

  • path: Unique identifier path for the content

  • type (optional): Content type (e.g., 'markdown')

  • source (optional): Source of the content

  • parentPath (optional): Path of the parent content (if applicable)

search-content

Searches for content using vector similarity.

Parameters:

  • query: The search query

  • maxMatches (optional): Maximum number of matches to return

Available Resources

search://{query}

Resource template for searching content.

Example usage: search://machine learning basics

Available Prompts

store-new-content

A prompt to help store new content with embeddings.

Parameters:

  • path: Unique identifier path for the content

  • content: The content to store

search-knowledge

A prompt to search for knowledge.

Parameters:

  • query: The search query

API Integration

This MCP server integrates with the AI Embeddings API at https://ai-embeddings.vercel.app/ with the following endpoints:

  1. Generate Embeddings (POST /api/generate-embeddings)

    • Generates embeddings for content and stores them in the database

    • Required parameters: content and path

  2. Vector Search (POST /api/vector-search)

    • Searches for content based on semantic similarity

    • Required parameter: prompt

Building from Source

# Clone the repository
git clone https://github.com/yourusername/mcp-embedding-storage.git
cd mcp-embedding-storage

# Install dependencies
pnpm install

# Build the project
pnpm run build

# Start the server
pnpm start

License

MIT

Available Tools

2 tools
save-memoryC

Save content to vector database

ParametersJSON Schema
NameRequiredDescriptionDefault
contentYesThe content to store
pathYesUnique identifier path for the content
typeNoContent type (e.g., 'markdown')
sourceNoSource of the content
parentPathNoPath of the parent content (if applicable)

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. 'Save content to vector database' implies a write operation but reveals nothing about permissions required, whether saves are idempotent, rate limits, error conditions, or what happens if the path already exists. For a mutation tool with zero annotation coverage, this leaves critical behavioral aspects undocumented.

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?

The description is maximally concise with a single, clear sentence that states the core functionality without any wasted words. It's appropriately sized for a tool with good schema documentation and gets straight to the point.

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?

For a mutation tool with 5 parameters and no annotations or output schema, the description is insufficient. It doesn't explain what happens after saving (success indicators, returned data), error handling, or the vector database context. The agent lacks critical information needed to use this tool effectively in real scenarios.

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

Parameters3/5

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

The description adds no parameter information beyond what the schema already provides. With 100% schema description coverage, all 5 parameters are documented in the schema itself. The description doesn't explain relationships between parameters (like how path and parentPath interact) or provide usage examples, so it meets the baseline but adds no extra value.

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

Purpose4/5

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

The description clearly states the action ('Save') and target resource ('content to vector database'), making the purpose immediately understandable. However, it doesn't differentiate from its sibling 'search-memory' beyond the obvious verb difference, missing an opportunity to clarify the complementary relationship between save and search operations.

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?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention the sibling 'search-memory' tool, prerequisites for saving content, or any constraints about when saving is appropriate versus other operations. The agent receives no contextual usage information.

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

search-memoryC

Search for information in vector database

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesThe search query
maxMatchesNoMaximum number of matches to return

TDQS

C2.6/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. It mentions searching a vector database but doesn't describe what happens during search (e.g., similarity matching, ranking), what permissions are needed, whether results are paginated, or error conditions. The description is minimal and lacks important operational context.

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 extremely concise - a single sentence with no wasted words. It's front-loaded with the core functionality. However, this conciseness comes at the cost of completeness, making it somewhat under-specified rather than optimally efficient.

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 no annotations, no output schema, and a search operation that typically has behavioral nuances (ranking, thresholds, result format), the description is incomplete. It doesn't explain what gets returned, how results are ordered, or any limitations of the search. For a tool with 2 parameters and no structured behavioral hints, more context is needed.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents both parameters ('query' and 'maxMatches') adequately. The description doesn't add any parameter-specific information beyond what's in the schema. Baseline 3 is appropriate when the schema does the heavy lifting for parameter documentation.

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

Purpose3/5

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

The description 'Search for information in vector database' states a clear verb ('Search') and resource ('vector database'), but it's vague about what specific information is being searched. It distinguishes from the sibling 'save-memory' by being a search rather than save operation, but lacks specificity about the search scope or content type.

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 is provided on when to use this tool versus alternatives. While it's implied this is for searching stored information (contrasting with 'save-memory' for saving), there's no explicit context about use cases, prerequisites, or limitations. The description doesn't mention when-not-to-use scenarios or alternative approaches.

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 updatesv1.0.0
    • Changedsave-memory2 fields changed
      • addedInput schema / $schema
        Added value: +"http://json-schema.org/draft-07/schema#"
      • addedInput schema / additionalProperties
        Added value: +false
    • Changedsearch-memory2 fields changed
      • addedInput schema / $schema
        Added value: +"http://json-schema.org/draft-07/schema#"
      • addedInput schema / additionalProperties
        Added value: +false
  2. 2 tool updates
    • First observedsave-memory
    • First observedsearch-memory

TDQS

C2.9/5.0
Disambiguation5/5

The two tools have perfectly distinct purposes: one saves content to the vector database, while the other searches for information within it. There is no overlap or ambiguity between these operations, making it impossible for an agent to confuse them.

Naming Consistency5/5

Both tools follow a consistent verb-noun pattern with hyphenated names (save-memory and search-memory). The verbs 'save' and 'search' clearly indicate the action, and 'memory' serves as a consistent noun, creating a predictable and readable naming convention throughout.

Tool Count2/5

With only two tools, this server feels under-scoped for an embedding storage system. While save and search are core operations, typical vector database interfaces would include additional tools like delete, update, list, or manage collections, making the current set appear thin and incomplete for the domain.

Completeness2/5

The tool surface is severely incomplete for an embedding storage server. It lacks essential operations such as deleting or updating stored memories, listing available entries, managing collections or namespaces, and performing advanced searches (e.g., by metadata). This will likely cause agent failures when trying to perform full lifecycle management of stored data.

Maintenance

ActivityInactive
ResponsivenessSyncing

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

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/ricleedo/Knowledge-EmbeddingAPI-MCP'

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