npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@aigne/example-mcp-server-sqlite

v1.3.0

Published

A demonstration of using AIGNE Framework and Sqlite MCP Server to interact with a SQLite database

Readme

Sqlite MCP Server Demo

This is a demonstration of using AIGNE Framework and MCP Server SQlite to interact with SQLite databases.

flowchart LR

in(In)
out(Out)
agent(Agent)
sqlite(SQLite MCP Server)
read_query(Read Query)
write_query(Write Query)
create_table(Create Table)
list_tables(List Tables)
describe_table(Describe Table)

subgraph SQLite MCP Server
  sqlite <--> read_query
  sqlite <--> write_query
  sqlite <--> create_table
  sqlite <--> list_tables
  sqlite <--> describe_table
end

in --> agent <--> sqlite
agent --> out

classDef inputOutput fill:#f9f0ed,stroke:#debbae,stroke-width:2px,color:#b35b39,font-weight:bolder;
classDef processing fill:#F0F4EB,stroke:#C2D7A7,stroke-width:2px,color:#6B8F3C,font-weight:bolder;

class in inputOutput
class out inputOutput
class agent processing
class sqlite processing
class read_query processing
class write_query processing
class create_table processing
class list_tables processing
class describe_table processing

Following is a sequence diagram of the workflow to interact with an SQLite database:

sequenceDiagram
participant User
participant AI as AI Agent
participant S as SQLite MCP Server
participant R as Read Query

User ->> AI: How many products?
AI ->> S: read_query("SELECT COUNT(*) FROM products")
S ->> R: execute("SELECT COUNT(*) FROM products")
R ->> S: 10
S ->> AI: 10
AI ->> User: There are 10 products in the database.

Prerequisites

Try without Installation

export OPENAI_API_KEY=YOUR_OPENAI_API_KEY # setup your OpenAI API key

npx -y @aigne/example-mcp-server-sqlite # run the example

Installation

Clone the Repository

git clone https://github.com/AIGNE-io/aigne-framework

Install Dependencies

cd aigne-framework/examples/mcp-server-sqlite

pnpm install

Setup Environment Variables

Setup your OpenAI API key in the .env.local file:

OPENAI_API_KEY="" # setup your OpenAI API key here

Run the Example

pnpm start

Example

The following example demonstrates how to interact with an SQLite database:

import assert from "node:assert";
import { join } from "node:path";
import { AIAgent, OpenAIChatModel, ExecutionEngine, MCPAgent } from "@aigne/core";

const { OPENAI_API_KEY } = process.env;
assert(OPENAI_API_KEY, "Please set the OPENAI_API_KEY environment variable");

const model = new OpenAIChatModel({
  apiKey: OPENAI_API_KEY,
});

const sqlite = await MCPAgent.from({
  command: "uvx",
  args: ["-q", "mcp-server-sqlite", "--db-path", join(process.cwd(), "usages.db")],
});

const engine = new ExecutionEngine({
  model,
  tools: [sqlite],
});

const agent = AIAgent.from({
  instructions: "You are a database administrator",
});

console.log(
  await engine.call(agent, "create a product table with columns name description and createdAt"),
);
// output:
// {
//   $message: "The product table has been created successfully with the columns: `name`, `description`, and `createdAt`.",
// }

console.log(await engine.call(agent, "create 10 products for test"));
// output:
// {
//   $message: "I have successfully created 10 test products in the database. Here are the products that were added:\n\n1. Product 1: $10.99 - Description for Product 1\n2. Product 2: $15.99 - Description for Product 2\n3. Product 3: $20.99 - Description for Product 3\n4. Product 4: $25.99 - Description for Product 4\n5. Product 5: $30.99 - Description for Product 5\n6. Product 6: $35.99 - Description for Product 6\n7. Product 7: $40.99 - Description for Product 7\n8. Product 8: $45.99 - Description for Product 8\n9. Product 9: $50.99 - Description for Product 9\n10. Product 10: $55.99 - Description for Product 10\n\nIf you need any further assistance or operations, feel free to ask!",
// }

console.log(await engine.call(agent, "how many products?"));
// output:
// {
//   $message: "There are 10 products in the database.",
// }

await engine.shutdown();

License

This project is licensed under the MIT License.