I've been having a grand ol' time with MCP servers.
As you may or may not know, MCP (Model Context Protocol) servers are one leg in a three legged stool. These servers return trusted information to large-langauge models for interpretation. Here is how the "stool" works. A person articulates a question/command. A large-language model maps the question/command to the functions of an MCP server. The server answers/addresses the question/command. The large-language model interprets the response and reformats it for the person. Thus, the large-language model is an interpreter. The model translates English into computer speak, and it translates computer speak (and a bit more) into English. The model makes it easier to: 1) call a geeky computer function with all the right parameters, and 2) translate the JSON response into English.
I started writing an MCP server against my collection of narrative texts (data sets), affectionately called "study carrels". The server, written in Python is temporarily available at the following link. [1] Alas, you will not be able to play with the server unless you have the Reader Toolbox installed as well as at least one study carrel. (Sigh.) Using "agent" software -- an MCP client application -- I can configure the use of the server and address all sorts of interesting questions against my carrels. [2] Moreover, I can point to the places in the carrels whence the answers come:
* Given the study carrel called 'twain', how many times is
the word 'slavery' mentioned?
* Show me the sentences where slavery is mentioned.
* Given the sentences, how is slavery characterized?
* Repeat but this time explore themes surrounding
the Mississippi River.
=====
* Given the study carrel named 'homer', use the
bibliographics to summarize the carrel.
* Create a line chart illustrating how the
underlying themes ebb & flow over time.
* Using the bibliographics, list the items in the carrel
whose keywords include Penelope.
* From the list of items, find all the sentences containing
the word 'Penelope'.
* From the sentences, characterize Penelope.
=====
* Given the study carrel named 'journal-of-politics', how
many items are in the carrel?
* Use the bibliographics of the carrel to list the
identifiers, authors, titles, dates, summaries, sizes in
words, readability scores, and keywords for each item. Sort
the list by size.
* Sort the list by date.
* Sort the list by author, title, readabilty score, etc.
* Item #12 looks interesting to me. Show it to me in its PDF
as well as plain text forms.
* Create a network graph illustrating the relationships
between authors, journal articles, and keywords; what
authors, articles, and/or keywords are literally
central to the journal?
* Given all the sentences containing the word 'state', what
are some of the definitions of 'the state'?
Along those same lines, I identified an MCP server which is an interface to Wikipedia. [3] I can then ask questions like:
* From Wikipedia, how does Mark Twain characterize slavery?
* Who is Penelope?
* What are some of the definitions of "the state"?
Finally I can compare and contrast:
* How does the summary of 'slavery' from the carrel compare
to the summary from Wikipedia?
* How is Penelope characterized here or there?
* What are the common characteristics of the state shared
between the carrel and Wikipedia?
In the end I can quite easily do both distant as well as close reading. I can verify my sources. I can identify an idea of interest in one thing and the elaborate (or focus) on the idea in another. I can use these two data sources to complement each other. I can really and truly address huge questions such as "What is justice?", and back up my answers with all sorts of quotes, citations, and visualizations spanning centuries and including hundreds of books or thousands of articles.
Now imagine this scenerio:
1. Do a topic search in your favorite bibliographic
database/index such as your library catalog, JSTOR, or Web
Of Science.
2. Save the dozens, hundreds, or (probably) thousands of
bibliographic results in a file accessible to an MCP server.
For extra credit, cache the full text of all these items.
3. Interact with the bibliographic results (and/or full text)
to filter, sort, summarize, visualize, and ask questions of
the results.
4. Apply your information literacy skills to evaluate the
whole process.
5. Articulate what you learned.
Very important!!! I do NOT advocate the sole use of this sort of technology to do library work nor any other sort of academic/scholarly activity. Instead, I assert the use of this technology be used to supplement our existing techniques. This technology is not a replacement of any kind, but it is a useful tool.
Interesting!? If so, then what sorts of MCP servers have you been using?
Links
[1] My fledgling MCP server used to interact with Distant Reader study carrels - https://distantreader.org/tmp/distant-reader-mcp-server.py
[2] I'm using an agent called mcp-client-for-ollama - https://github.com/jonigl/mcp-client-for-ollama
[3] Wikipedia MCP Server - https://github.com/Rudra-ravi/wikipedia-mcp
--
Eric Lease Morgan <[log in to unmask]>
|